、およびプログラミングといくつかの経験があるかどうかを確認するために、Excelでバーコードを読み取ります。私はアプリケーションのためのVBAの経験ちょっぴりを持って、私はエクセル2016で働いている試合
私はバーコードスキャナーから入力を受け取り、スプレッドシートの列と比較しようとしています。一致するものがあれば、いくつかの文字と日付スタンプをいくつかのセルに入れます(イニシャルと日付は別々に列)。
This questionは非常によく似たユースケースを有し、サンプルコードを含みます。私はコードサンプルを試して、動作させることができません。最初は、配列に問題がありました。最終的に私はあなたが「C2:C8」をやることができたと考えていましたが、それはどこにも書かれていませんが(おそらく、基本コース/クラスの一部ですが、そこMatch()のために定義されたサブまたは関数についてのエラーがあったので、私はsecurity centerにSolverアドインが有効。それはそれを修正していないので、一致がVBA関数ではないと説明したforum postが見つかりました。
は今、私は「WorksheetFunctionクラスのマッチプロパティを取得できません実行時エラー1004」ボタンをクリックした後、エラーを取得し、デバッグをクリックすると、同じ行に私を取ります。ここで
は私が巻き上げているコードです:
Private Sub CommandButton1_Click()
code = InputBox("Please scan a barcode and hit enter if you need to")
matchedCell = Application.WorksheetFunction.Match(code, Range("C2:C8"), 0)
matchedCell.Offset(0, 2) = Now
End Sub
私は、これは簡単なものだったし、すでに解決思ったので、これは非常にイライラさせられます。問題を解決してソフトウェアを開発する代わりに、私は構文や環境と戦っているようだ。私は間違って何をしていますか?
'Match'は行番号を返します(一致したとき)、' matchedCell'を 'Range'と設定することはできません。 Range( "C2:C8")のどのセルにあなたの 'InputBox'と一致するものがあるかを調べようとしていますか?そのセルの右側の2列にあるセルに現在の時間を挿入しますか? –
"matchedcell ="で始まる最初の行の前に "Debug.print code"を追加すると、範囲内の値になりますか?あなたはまた、完全に範囲、すなわちワークブック(「mybook.xlsx」)を修飾する必要がありますシート(「シート1」)の範囲(「C2:C8を」)。。 – User632716