当我在最后一个参数上使用True时,我的代码有效。问题在于它必须完全匹配,否则代码会给我带来不正确的值。但是,当我将最后一个参数更改为False时,出现错误1004
无法获取WorksheetFunction类的vlookup属性
这是我的代码:
Range("AW" & i) = WorksheetFunction.VLookup(Sheet2.Range("B" & i), Sheet3.Range(Sheet3.Range("A1"), Sheet3.Range("B" & lastrow)), 2, False)
我只是想让此vlookup给我正确的值。因此,我需要使完全匹配参数起作用。
答案 0 :(得分:0)
您需要执行以下操作...
Range("AW" & i) = WorksheetFunction.VLookup(Sheet2.Range("B" & i), Sheet3.Range("A1:B" & lastrow), 2, False)
...您需要在第二个参数中包装单个范围。尚未经过100%的测试,但我在本地工作了一个单一的工作表来模拟某些东西。
您还可以使用 INDEX 和 MATCH ...
Range("AW" & i) = WorksheetFunction.Index(Sheet3.Range("A1:B" & lastrow), WorksheetFunction.Match(Sheet2.Range("B" & i), Sheet3.Range("A1:B" & lastrow)))
如果有可能无法找到匹配项,则需要执行适当的错误检查。