Найти в листе
Кратчайший
With wsCaseInfo
Set cellx = .Range("A1:A99").Find("Overview", , xlValues, xlPart)
End With
Короткий
With wsCaseInfo
Set cellx = .Range("A1:A99").Find("Overview", , xlValues, xlPart)
If Not cellx Is Nothing Then
Debug.Print cellx.Address
Else
Debug.Print "Cell range not found."
End If
End With
Длинный
Sub FindInWorksheet()
Const cSheet As String = "Sheet1"
Dim wsCaseInfo As Worksheet
Dim cellx As Range
Set wsCaseInfo = ActiveWorkbook.Worksheets(cSheet)
With wsCaseInfo
' Full
'Set cellx = .Range("A1:A99").Find("Overview", .Range("A99"), _
xlValues, xlPart, xlByColumns, xlNext, False)
' Preferable
'Set cellx = .Range("A1:A99").Find("Overview", , _
xlValues, xlPart, xlByColumns)
' Minimal
Set cellx = .Range("A1:A99").Find("Overview", , xlValues, xlPart)
If Not cellx Is Nothing Then
Debug.Print cellx.Address
Else
Debug.Print "Cell range not found."
End If
End With
End Sub
Метод поискаНапоминание
- 1-й аргумент Что содержит данные для поиска и требуется .Все остальные аргументы являются необязательными.
- Опуская второй аргумент, После , ваш поиск начинается с
A2
и заканчивается A1
, что часто предпочтительнее, так как у нас есть заголовки в первомстрока.Но чтобы начать поиск с A1
и завершить с A99
, вам нужно установить для параметра After значение "A99"
. - 3-й, 4-й и 5-й аргументы LookIn , LookAt и SearchOrder , SAVED каждый раз, когда
Find
выполняется. - Установив параметр аргумента LookIn на
xlValues
, вы предотвращаете возможный поиск в формулах (или комментариях). - LookAt правильно установлен на
xlPart
для поиска значений параметра What (Overview
) в ячейках, в которых он является лишь частью их, например, Product Overview
или Overview of Parts
.Или это? - SearchOrder можно смело опустить, так как мы ищем в диапазоне из одного столбца.
- Шестой аргумент SearchDirection по по умолчанию
xlNext
используется в коде и поэтому может быть безопасно пропущен. - Седьмой аргумент MatchCase по по умолчанию
False
находит OverView
или ovErView
, что, вероятно, здесь не проблема.