Vlookup完全匹配(假)的VBA代码应该可以工作吗?

时间:2019-04-27 01:17:43

标签: excel vba vlookup exact-match

当我在最后一个参数上使用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给我正确的值。因此,我需要使完全匹配参数起作用。

1 个答案:

答案 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)))

如果有可能无法找到匹配项,则需要执行适当的错误检查。