我完全卡住了!以前,我使用了下面的vlookup VBA来获得我的结果。
例如:
Worksheets("Part Numbers").Cells(i + 1, 2) = _
"=VLOOKUP(RC[-1],'Supplier'!C[-2]:C[1],3,0)
我现在需要使用应用程序工作表函数,以便单元格包含结果(数字)而不是函数。以下是目前为止的内容:
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
我还包括了下面的错误声明,因为我已经读到,如果不指定,有时会导致问题:
If IsError(Worksheets("Part Numbers").Cells(i + 1, 3)) Then
Worksheets("Part Numbers").Cells(i + 1, 3) = "NA"
End If
当我运行这个时,我得到错误"无法获得工作表函数类的vlookup属性"。当我调试时,我可以看到我的LUValue是不正确的。实际上,这应该是我要放入VLOOKUP的单元格的左边。我也尝试过使用我的LUValue的偏移量,但仍然不能让它工作。我相信查找值是我出错的地方,但老实说,我不确定,因为它看起来都对我的眼睛。
如果有人能提供一些提示或指导,我将不胜感激。
未测试:
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