Моя функция поиска для диапазона продолжает работать со 2-го экземпляра. Что я делаю не так? - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь найти массив, затем внести коррективы в найденную строку.Поиск начинается со 2-го экземпляра того, что было найдено, как мне сделать это первым экземпляром?

val = MySheet.Range("B8")
With MySheet.Range("MyList")
Set Loc = .Find(val, LookAt:=xlWhole, SearchOrder:=xlByRows)

Do
ListPos = Loc.Row
MyVal = MySheet.Cells(ListPos, 6).Value
MsgBox ListPos

Val = x MyList = {x, z, y, f, g, x, x} (только диапазон из 1 столбца, который я назвал)

MsgBox всегда показывает значение строки 2-го экземпляра в массиве

Я пытался использовать порядок поиска и пытался использоватьПосле: = 0, это не помогло

Я ожидал, что ListPos будет 1, вместо этого он всегда будет 6

1 Ответ

1 голос
/ 22 апреля 2019

Я думаю, вам нужен After:= пример ниже.

Set foundMatch = .Find(What:=cellCriteria, After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True, SearchFormat:=False) 'finds a match
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...