Функция НАЙТИ в VBA: как ее использовать?

хочу научиться пользоваться НАЙТИ функцию в VBA🇧🇷 Тогда вы по адресу!

Кто не знает функцию ПОИСК в Excel? Если вы некоторое время работали с Excel, вы, вероятно, использовали функцию ПОИСК или популярную комбинацию клавиш Ctrl + L, чтобы найти слово или часть содержимого, которое вы хотите найти на всем листе. как и вся рабочая тетрадь.

Кроме того, в VBA у нас есть функция FIND, которая может помочь нам найти искомое значение.

Следуйте инструкциям ниже, чтобы узнать больше об этой функции на практических примерах.

Как работает функция НАЙТИ в VBA?

Функция Excel VBA FIND выполняет поиск определенного значения в определенном диапазоне. Ищет первое вхождение этого значения, и если оно найдено, функция возвращает ячейку, содержащую его. Однако, если совпадений не найдено, функция ничего не возвращает. Функция VBA FIND может возвращать точное или частичное совпадение.

Например, следующий код ищет текст "Сан - Пабло» в промежутке A1: A10 в "Рабочий лист1🇧🇷

С листами("Лист1").Range("A1:A10")
Установить Rng = .Find(What:="Сан-Паулу")

Целью использования функции НАЙТИ в VBA является поиск нужного значения в заданном наборе данных. С помощью кода VBA вы можете автоматизировать задачу поиска значений в Excel.

Синтаксис функции VBA FIND

Синтаксис функции VBA FIND объявлен следующим образом:

выражение.Find(Что, После, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Dónde:

выражение: — это объект диапазона, который предшествует функции НАЙТИ в коде VBA. Диапазоном поиска может быть одна или несколько строк, столбцов или вся электронная таблица. Функция VBA FIND принимает следующие аргументы:

  • Qué: Это значение, которое нужно искать. Это может быть числовой, текстовый или любой другой тип данных Excel. Этот аргумент совпадает с параметром «Найти» в «найти и заменить»из Экселя.
  • то: Указывает ячейку, с которой начнется поиск. Он вводится как ссылка на одну ячейку. Если этот аргумент опущен, поиск начинается после ячейки в левом верхнем углу указанного диапазона поиска.
  • Смотреть в: Это место (или данные), где нужно искать значение. Это может быть комментарий (xlComments), формула (xlFormulas) или значение (xlValues). Значение по умолчанию для этого аргумента — xlFormulas. Кроме того, этот аргумент совпадает с параметром «Найти» в «найти и заменить»из Экселя.
  • Посмотрите: Этот аргумент решает, следует ли сопоставлять все содержимое ячейки (точное совпадение) или часть содержимого ячейки (частичное совпадение). Константы xlWhole и xlPart для точного и частичного совпадения соответственно. Значение по умолчанию для этого аргумента — xlPart.
  • Порядок поиска: Этот аргумент предлагает порядок поиска. Вы можете указать, будет ли поиск выполняться в строках (xlByRows) или в столбцах (xlByColumns). Значение по умолчанию для этого аргумента — xlByRows. Кроме того, этот аргумент совпадает с параметром «Найти» в «найти и заменить»из Экселя.
  • Адрес поиска: Указывает адрес, по которому будет выполняться поиск. Вы можете выполнять поиск вниз или к следующей ячейке с помощью константы xlNext. Кроме того, вы можете выполнять поиск назад (вверх) или в предыдущей ячейке с помощью константы xlPrevious. Значение по умолчанию для этого аргумента — xlNext.
  • Учитывать регистр: Этот аргумент определяет, должен ли поиск учитывать регистр или нет. Если поиск чувствителен к регистру, этот аргумент указывается как истина (ИСТИНА), в противном случае — ложь (ЛОЖЬ). Значение по умолчанию для этого аргумента — False.
  • Байт совпадения: Этот аргумент следует использовать, если кто-то установил или выбрал поддержку двухбайтового языка. Должно быть указано как true, если двухбайтовые символы должны соответствовать двухбайтовым символам. Должно быть указано как false, если двухбайтовые символы должны сопоставляться с их однобайтовыми эквивалентами.
  • формат поиска: Указывает, должно ли искомое значение быть в определенном формате (например, жирным шрифтом или курсивом) или нет. Если искомое значение должно соответствовать методу форматирования, этот аргумент указывается как истина, в противном случае - как ложь. Значение по умолчанию для этого аргумента — ложь (FALSE).

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

Функция НАЙТИ возвращает один из следующих результатов:

  • Если совпадение найдено, функция возвращает первую ячейку, в которой найдено значение.
  • Если совпадений не найдено, функция ничего не возвращает. Это связано с тем, что для объекта функции ничего не задано.

В качестве альтернативы, если совпадений не найдено, пользовательское сообщение, указанное в функция окна сообщения может быть возвращен (см. примеры кода ниже).

Nota 1: Поиск начинается после ячейки, указанной в аргументе. После и продолжается до последней ячейки в диапазоне поиска. Если значение не найдено до этой последней ячейки, поиск начинается снова с первой ячейки в диапазоне поиска до ячейки, указанной в аргументе. После🇧🇷

Следовательно, ячейка, указанная в аргументе После он ищется в конце процесса поиска. Подробнее об использовании аргумента Послесм. второй пример в этой статье.

Nota 2: Каждый раз, когда используется функция VBA FIND, смотреть в🇧🇷 Mirar🇧🇷 порядок поиска y MatchByte Таким образом, если эти значения будут опущены при следующем использовании функции, Excel будет использовать ранее сохраненные значения. Поэтому рекомендуется явно объявлять предоставленные аргументы всякий раз, когда поиск выполняется с помощью функции VBA FIND.

Как использовать функцию НАЙТИ в Excel VBA?

Чтобы вы поняли, как использовать функцию НАЙТИ в VBA, ниже мы выделили несколько практических примеров.

Пример 1: Выбор ячейки с первым вхождением искомого значения

В этом первом примере предположим, что у вас есть список, содержащий некоторые имена, как показано на изображении ниже, и вы хотите просмотреть и выбрать ячейку, содержащую имя. Педру🇧🇷

Оттуда выполните следующие действия:

1. Доступ к руководству разработчик 🇧🇷 Visual Basic🇧🇷 (Если в вашем Excel не включена вкладка «Разработчик», проверить здесь шаг за шагом).

руководство разработчика

ДОС. На экране VBA выберите нужный рабочий лист в меню слева. В этом примере мы выберем Рабочий лист1 который представляет собой рабочий лист, содержащий список имен.

3. После выбора нужного рабочего листа в области справа введите код ниже:

Выберите ячейку с первым вхождением искомого значения

Подложное имя()
Диапазон("A1:A10").Найти(Что:="Питер").Выбрать
End Sub
  • Обратите внимание, что в приведенном выше коде мы упомянули искомый диапазон (A1: A10🇧🇷
  • После упоминания диапазона поставьте точку (.) и введите ENCONTRAR🇧🇷
  • Наш первый аргумент — это то, что мы ищем. Чтобы выделить аргумент, мы можем передать аргумент что:=это будет полезно, чтобы определить, на какой параметр мы ссылаемся.
  • Заключительная часть после нахождения слова, что мы хотим сделать. Нам нужно выбрать слово, поэтому передайте аргумент как .Выбирать🇧🇷
  • Затем запустите этот код с помощью ключа F5 или вручную, как показано на изображении ниже, чтобы выбрать первую ячейку, содержащую имя Педру🇧🇷

найти в VBA

Пример 2. Выберите ячейку со вторым вхождением искомого значения.

Во втором примере обратите внимание, что следующее изображение содержит некоторые имена в диапазоне A1:A10. Обратите внимание, что название «Педру” появляется дважды в столбце A.

Выберите ячейку со вторым вхождением

В этом случае мы хотим найти и выбрать второе появление имени «Питер» в столбце А (то есть в ячейке А7). Для этого мы будем использовать следующий код:

НАЙТИ второе вхождение VBA

Подложное имя()
Диапазон("A1:A10").Найти(Что:="Питер", После:=Диапазон("A2")).Выбрать
End Sub

Обратите внимание, что в приведенном выше коде поиск начинается после ячейки A2 и продолжается до последней ячейки в столбце A. Это связано с тем, что диапазон поиска был указан как столбец A (A1:A10).

Итак, поскольку поиск начинается в ячейке A3, значение «Педру” находится в клетке A7 дает"Таблица2🇧🇷 Следовательно, ячейка A7 будет выбрана функцией НАЙТИ при выполнении кода.

Если имя «Педру” не был найден в ячейке A3 до последней ячейки в столбце A, поиск снова начнется с ячейки A1 и на этот раз закончится в ячейке A2. Следовательно, ячейка, указанная в аргументе «После” ищется в самом конце процесса поиска.

Пример 3: найти текст, указав некоторые из его символов

Для поиска текста, указав только его часть, введите аргумент Mirar в качестве XLPart или опустите этот аргумент. По умолчанию функция НАЙТИ сопоставляет символы в искомом значении со всей строкой. Затем он возвращает ячейку, содержащую всю эту строку.

Посмотрите на пример ниже:

Подложное имя()
Диапазон("A1:A10").Найти(Что:="Ped", LookAt:=xlPart).Выбрать
End Sub

Этот код ищет символы "Ped” в диапазоне A1:A25 на “Листе3”. Возвращается ячейка, содержащая значение, которое называется частичное соответствие🇧🇷 Таким образом, независимо от того, находятся ли символы искомого значения в начале, середине или конце строки, Excel VBA возвращает совпадение.

наблюдение: постоянная XLPart его можно опустить в коде, потому что это значение по умолчанию для функции НАЙТИ. Но если этот аргумент указан, убедитесь, что он не заключен в двойные кавычки.

Пример 4: Поиск текста в комментарии

Вы также можете использовать функцию VBA FIND, чтобы найти текст в комментарии к ячейке в Excel.

Для лучшего понимания взгляните на пример ниже, где у нас есть рабочий лист, содержащий три ячейки с комментариями (обозначены красными треугольниками). Из этого мы хотим найти текст «комиссия уплачена», расположенный в одном из комментариев. В этом случае мы будем использовать следующий код:

Подкомментарий местонахождения ()
Range("A1:B10").Find(What:="Commission Pays", LookIn:=xlComments).Select
End Sub

Найти текст в комментарии

В результате Excel выберет только ту ячейку, которая содержит комментарий, текст которого указан в нашем коде.

Пример 5: Обработка ошибок в функции НАЙТИ в VBA

Если текст, который мы ищем, не находится в заданном диапазоне, VBA вернет ошибку, как показано ниже:

91 Ошибка

Чтобы избежать этой ошибки, мы можем использовать код, как показано ниже:

Подложное имя()
Тусклый результат как вариант

On Error Resume Next
Диапазон("A1:A10").Найти(Что:="Кристина").Выбрать
По ошибке GoTo 0

Результат = ActiveCell.Value

Если Результат = "" Тогда
MsgBox "Искомое значение недоступно в указанном диапазоне!"
Exit Sub
End If

End Sub

Обратите внимание, что в приведенном выше коде, если VBA найдет значение, он отобразит найденное значение, иначе он отобразит сообщение как «Значение, которое вы ищете, недоступно в заданном диапазоне🇧🇷

Дополнительные советы о том, как исправить ошибки VBA, см. в статье: Ошибки Excel VBA: все, что вам нужно знать!

Детали, которые нужно помнить

  • Функция НАЙТИ является частью свойства ДИАПАЗОН, и вы должны использовать НАЙТИ после выбора только диапазона.
  • В функции НАЙТИ первый аргумент (что), плюс все остальное по желанию.
  • Если вы найдете значение после определенной ячейки, вы можете указать ячейку в параметре После синтаксиса поиска.

Скачать таблицу здесь содержащий примеры, представленные в этом руководстве.

Также ознакомьтесь со следующими советами по Excel:

Итак, что вы думаете о функции НАЙТИ в VBA? Если у вас есть какие-либо вопросы, оставьте свой комментарий ниже. Также ознакомьтесь с дополнительными советами по Excel и VBA на нашем веб-сайте!

Томми Бэнкс
Мы будем рады услышать, что вы думаете

оставьте ответ

Технобрейк | Предложения и отзывы
Логотип
Включить регистрацию в настройках - общие
Корзина