Excel VBA - метод Application.Match не находит соответствия - PullRequest
0 голосов
/ 25 октября 2018

У меня есть небольшая макропрограмма, которая сопоставляет значения между двумя листами (большие данные).

Я использую метод Application.Match , чтобы найти совпадение определенного значения в другом листе.

Проблема заключается в том, что при попытке назначить переменную строкив диапазоне результат получает Строка 1 вместо Строка 7 , где точное совпадение.

Application.Match (data1, Worksheets ("Data")).Range ("O" & lRowRange & ": O" & lLastRow), 0) `

lRowRange = 5

If Not IsError(Application.Match(data1, Worksheets("Data").Range("O" & lRowRange & ":O" & lLastRow), 0)) Then

     lMatchFound = Application.WorksheetFunction.Match(data1, Worksheets("Data").Range("O" & lRowRange & ":O" & lLastRow), 0)

     sDataFound = Sheets("Data").Cells(lMatchFound, 15)

End if

Я не использую операторы LOOP, чтобы найти совпадение, потому что рабочие листы содержат большиеколичество данных.

Надеюсь, вы могли бы помочь мне.Заранее спасибо.

1 Ответ

0 голосов
/ 25 октября 2018

Вы ищете совпадение в O5: O10.Если ваш искомый текст находится в O5, то ваша функция соответствия даст вам «1», потому что он находится в первой ячейке вашего диапазона.

Используйте

sDataFound = Sheets("Data").Cells(lMatchFound + lRowRange - 1, 15)

, и вы получитебудь в порядке.

...