我完全卡住了!以前我使用下面的vlookup VBA来获得我的结果。
例如:
Worksheets("Part Numbers").Cells(i + 1, 2) = _
"=VLOOKUP(RC[-1],'Supplier'!C[-2]:C[1],3,0)
我现在需要使用Application Worksheet函数,以便单元格包含结果(数字)而不是函数。以下是我到目前为止的情况:
For i = 3 To LR ' last row
LUvalue = Worksheets("Part Numbers").Cells(i + 1, 2)
Worksheets("Part Numbers").Cells(i + 1, 3) = _
Application.WorksheetFunction.VLookup(LUvalue, [Supplier_Range], 3, False)
Next I
In还包含了下面的Error语句,因为我已经读过,如果没有指定,这可能会导致问题:
If IsError(Worksheets("Part Numbers").Cells(i + 1, 3)) Then
Worksheets("Part Numbers").Cells(i + 1, 3) = "NA"
End If
当我运行此操作时,我收到错误'无法获取工作表函数类的vlookup属性'。当我调试时,我可以看到我的LUValue根本就不对。基本上这应该是我将VLOOKUP放入的单元格左侧的单元格。我也尝试过为我的LUValue使用Offset,但仍然无法使用它。我相信查找价值是我出错的地方,但说实话,我不确定,因为它看起来对我来说都是正确的。
如果有人可以提供一些提示或指导,我们将不胜感激。
答案 0 :(得分:1)
未测试:
Dim sht As WorkSheet, res
Set sht = Worksheets("Part Numbers")
For i = 3 To LR ' last row
LUvalue = sht.Cells(i + 1, 2).Value
'adjust Supplier range to suit...
res = Application.Vlookup(LUvalue, _
Worksheets("Supplier").Range("A:D"), _
3, False)
sht.Cells(i + 1, 3).Value = Iif(iserror(res),"NA", res)
Next i