应用程序工作表函数VLookup第二个变量



我完全卡住了!以前,我使用了下面的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

最新更新