我完全被卡住了!以前,我使用下面的vlookup VBA来获得结果。
例如:
Worksheets("Part Numbers").Cells(i + 1, 2) = _
"=VLOOKUP(RC[-1],'Supplier'!C[-2]:C[1],3,0)
现在,我需要使用Application Worksheet Function才能使单元格包含结果(数字)而不是函数。这是我到目前为止的内容:
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
在中,我还阅读了以下Error语句,因为如果未指定,这有时可能会引起问题:
If IsError(Worksheets("Part Numbers").Cells(i + 1, 3)) Then
Worksheets("Part Numbers").Cells(i + 1, 3) = "NA"
End If
运行此命令时,出现错误“无法获取worksheetfunction类的vlookup属性”。当我调试时,我可以看到我的LUValue根本不正确。本质上,这应该是我要放入VLOOKUP的单元格左侧的单元格。我也尝试过为我的LUValue使用Offset,但仍然无法使它正常工作。我认为查找值是我出问题的地方,但是老实说,我不确定这一切看起来正确。
如果有人可以提供一些提示或指导,将不胜感激。
未经测试:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句