Страницы: 1
RSS
Почему VBA find ищет не с первой строки?
 
Имею следующий код:
Код
Sub tester()
Range("B1").Value = Range("F1:F5").Find("Яблоко").Value
End Sub

Однако при его запуске в ячейку В1 выходит значение не "Яблоко" из ячейки F1, а "Яблоко мел" из ячейки F2. Почему так происходит? Метод же должен судя по описанию возвращать ПЕРВОЕ встреченнную ячейку, содержащую искомый текст.

 
Денис Мурченко, внимательно читаем про параметр After
Цитата
If you don’t specify this argument, the search starts after the cell in the upper-left corner of the range
То есть поиск начинается после первой ячейки диапазона.
 
Была такая тема. Если не ошибаюсь, ZVI объяснял, что Find считает первую строку заголовком.
Решение: искать "снизу" )
 
Казанский, я читал MSDN, но это как-то видимо пропустил. Спасибо. Но дело в том что мне критично искать с самого начала. Есть способ заствить VBA это делать?
 
Денис Мурченко, просто надо вторым параметром указать последнюю ячейку диапазона. И желательно явно указать остальные параметры.
Код
With Range("F1:F5")
  Range("B1").Value = .Find("Яблоко", .Cells(.Cells.Count), xlValues, xlPart, , xlNext).Value
End With
 
ОПс, спасибки!
 
Подозреваю, что #3 Вы не заметили )
Страницы: 1
Наверх