使用数字和文本搜索时VLookup错误

时间:2018-08-16 18:08:54

标签: excel excel-2016

我是VBA的新手,正在尝试重新编码已存在的程序,以对其进行优化并添加新功能。该程序接受扫描仪输入(尽管我现在只是手动输入数字),然后记录并分类取出的物品类型。然后将其放在日志中以供以后参考。这是第一个接受扫描输入的用户表单:

Private Sub TextBox1_Change()

Dim barcode As Long, emptyRow As Long, testHold As Long
Set TempHold = Worksheets("TempHold")

If Application.WorksheetFunction.CountIf(TempHold.Range("D2:D25"), TextBox1.Value) = 1 Then
If Application.WorksheetFunction.CountIf(Range("B:B"), TextBox1.Value) = 0 Then

CartTypeMenu.Show

barcode = TextBox1.Value
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

Cells(emptyRow, 1).Value = Application.WorksheetFunction.VLookup(barcode, TempHold.Range("D2:E25"), 2, True)
Cells(emptyRow, 2).Value = barcode
Cells(emptyRow, 3).Value = Format(Now(), "mm/dd/yyyy hh:nn")
Cells(emptyRow, 4).Value = CartTypeMenu.ComboBox1.Value

TextBox1.Value = ""

Else

    testHold = TextBox1.Value
    Call boxTest(testHold)

End If

End If

End Sub

我在单独的工作表(TempHold)中有两个表,这些表的扫描输入对应于一个数字,以及一个对应于名称的数字。最终日志中的行基本上是扫描输入的编号(它们用数字标记),扫描输入,时间(可以正常工作),类型,然后是名称。

我遇到的问题是当我在VLookup中搜索要放入日志行中下一个单元格的名称时;从数字中获取名称。仅在日志中处于活动状态时才查找名称(一旦任务完成,它将清除)。我尝试将数字更改为字符串,反之亦然,但是我无法使其正常工作。这是有问题的模块:

Sub boxTest(testHold As Long)

Dim offsetValue As Long, myValue As Variant

Set ws = Worksheets("Log")
Set sheetLookup = Worksheets("TempHold")

offsetValue = Application.Match(testHold, ws.Range("B2:B8"), 0)

myValue = InputBox("Enter your number")

ws.Range("E" & offsetValue).Value = Application.WorksheetFunction.VLookup(myValue, sheetLookup.Range("A2:B9"), 1, True)

End Sub

VLookup不断给出该模块中找不到WorksheetFunction的错误。

0 个答案:

没有答案