Добрый день. Никак не могу определить, из-за чего Find упорно не находит в ячейке R17C20 искомое? Предполагаю, что на вашем ПК макрос будет срабатывать, поэтому покажу скрин.
Find ищет значения (LookIn:=xlValues) только в ячейках, значения которых отображаются, а в данном случае ширина столбца T равна 0.25 стандартного символа и если снять объединение ячеек, то числа 3 в T17 не будет видно. Аналогичная ситуация возникает, когда большое число не вмещается в ячейку и в ячейке отображаются символы "#", или когда ячейка скрыта фильтром либо вручную. При параметре LookIn:=xlFormulas у функция Find такого ограничения нет и Find "заглядывает" в формулы, но если нужно найти результат формулы ячейки, то LookIn:=xlFormulas не поможет, так как значения совпадают с формулами только у констант.
ZVI! А каковы рекомендации по поводу использования функции Find для таких "нестандартных" файлов, как у автора темы? Как я поняла, для "стандартных" файлов проблем не будет? Или надо помнить о форматах при поиске?
Одна из рекомендаций уже была - искать Find-ом с LookIn:=xlFormulas Вот еще пара вариантов:
Код
Sub Test()
'формула =ПОИСКПОЗ(3;17:17;0) или на англ =MATCH(3,17:17,0)
Debug.Print 1, WorksheetFunction.Match(3, Rows(17), 0)
Debug.Print 2, Evaluate("MATCH(" & 3 & "," & "17:17" & ",0)")
End Sub
Можно и в массив загнать значения диапазона, а затем в цикле пробежаться, это достаточно быстро, но диапазон желательно ограничить с промощью UsedRange, чтобы далеко не бегать, когда значения нет в диапазоне.
ZVI! Спасибо!!! У меня с Find были "заморочки": "рукопашные" данные из заявок должны были найти "братьев" в БД. Конечно, была проблема с "лишними" пробелами.