我正在使用Excel 2016.我對應用程序的VBA有一定的經驗,並且有一些編程經驗。在Excel中讀取條形碼以查看是否匹配
我試圖從條形碼掃描儀獲取輸入信息,將其與電子表格中的列進行比較,如果有匹配項,則在某些單元格中放置幾個字符和日期戳(縮寫和日期,每個單獨分隔列)。
This question有一個非常相似的用例,幷包含一個代碼示例。我已經嘗試過代碼示例,無法使其工作。起初,陣列出現了問題。最終我發現你可以做「C2:C8」,這似乎工作,雖然這沒有記錄在任何地方(可能是基礎課程/類的一部分,但無法找到)。有關Match()定義的子項或函數的錯誤,所以我啓用Solver加載項在security center。這並沒有解決它,所以我發現這forum post解釋匹配不是一個VBA函數。
現在,單擊按鈕「運行時錯誤1004,無法獲取WorksheetFunction類的Match屬性」後,單擊調試將我帶到同一行,但出現錯誤。
這裏是我傷口與代碼:
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'返回行號(當它找到匹配項時),所以你不能像你那樣設置我認爲是'Range'的'matchedCell'。您是否想要從Range(「C2:C8」)中的哪個單元格中找到與您的「InputBox」匹配的單元格?然後將當前時間插入位於該單元格右側2列的單元格中? –
在第一行開始「matchedcell =」之前添加「Debug.print代碼」,是您範圍內的值嗎?你也應該完全限定範圍,即工作簿(「mybook.xlsx」)。sheets(「sheet1」)。range(「C2:C8」) – User632716