VBA код для Vlookup точное совпадение (ложь) должно работать? - PullRequest
0 голосов
/ 27 апреля 2019

Мой код работает, когда я использую True для последнего аргумента. Проблема в том, что это должно быть точное совпадение, в противном случае код приносит мне неправильные значения. Однако, когда я изменяю последний аргумент на False, я получаю ошибку 1004

Невозможно получить свойство vlookup класса WorksheetFunction

Вот мой код:

Range("AW" & i) = WorksheetFunction.VLookup(Sheet2.Range("B" & i), Sheet3.Range(Sheet3.Range("A1"), Sheet3.Range("B" & lastrow)), 2, False)

Я просто хочу, чтобы этот vlookup дал мне правильные значения. Поэтому мне нужно, чтобы аргумент с точным соответствием работал.

1 Ответ

0 голосов
/ 27 апреля 2019

Вам нужно сделать что-то вроде этого ...

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

Если у вас есть вероятность того, что предметы не найдут совпадения, вам необходимо выполнить соответствующую проверку ошибок.

...