Функция поиска VBA | Как использовать функцию поиска VBA? (Примеры)

Excel VBA Найти

Когда мы используем Найти на обычном листе, мы нажимаем сочетание клавиш CTRL + F и вводим данные, которые нам нужны, и если не желаемое значение, мы переходим к следующему совпадению, если таких совпадений много, это утомительная задача, но когда мы используем FIND в VBA, он выполняет задачи за нас и дает нам точное совпадение, и для этого нужны три аргумента, один - что найти, где найти и где посмотреть.

Прежде чем мы перейдем к VBA и начнем использовать функцию поиска в макросах, нам нужно сначала узнать, что такое функция поиска в Excel. В обычном Excel на вкладке «Главная» в группе редактирования мы можем найти функцию поиска, которая используется для поиска строки или значения в диапазоне ячеек или на всем листе.

Когда мы нажимаем на это, мы получаем два варианта;

Один легко найти,

Мы видим, что у него также есть режим опций, который открывает другую функцию.

Он выполняет алгоритм поиска с четырьмя ограничениями: «Найти что», «Внутри», «Искать и искать».

Второй вариант в excel - найти и заменить, который используется, когда мы находим строку, но что заменить ее любым другим значением,

Синтаксис функции поиска

Выше мы узнали, что такое Найти в базовом Excel. В VBA мы пишем коды вручную, но функции такие же, как и в обычном Excel. Во-первых, давайте посмотрим на синтаксис.

Выражение.Найти (Что, смотришь,….)

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

Выражения в макросах - это диапазоны, определенные, например, диапазон 1 или диапазон 2. Какое ключевое слово соответствует тому, что мы хотим найти для определенного значения? Lookin - это ключевое слово для того, что мы пытаемся найти, будь то комментарий, формула или строка. Точно так же в функции поиска есть другие ограничения, которые не являются обязательными. Единственное обязательное поле - это значение, которое мы пытаемся найти.

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

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

Примеры

Вы можете скачать этот шаблон Excel функции VBA FIND здесь - Шаблон Excel функции VBA FIND

Пример # 1

Предположим, наши данные имеют следующие значения

Постараемся найти «Аран» в тех же данных.

  • Чтобы написать код VBA, необходимо включить вкладку разработчика в Excel, чтобы иметь возможность писать коды VBA.

  • Мы начинаем писать наш код с написания следующего кода, как показано ниже,
Подвыборка ()

Тусклые находки как строка

Dim Rng As Range

FindS = InputBox («Введите значение, которое вы хотите найти»)

С листами («Лист1»). Диапазон («А: А»)

  • Образец - это имя функции, присвоенное подпрограмме.
  • Найти - это строка, которую мы хотим, чтобы пользователь, которого мы хотим ввести для поиска.
  • Rng - это переменная, которую мы взяли за диапазон.
  • Теперь мы просим пользователя ввести значение, которое выглядит как на скриншоте ниже,

  • Теперь мы определим нашу функцию поиска в модуле.

  • Функция находит значение, введенное пользователем в заданном диапазоне.
  • Теперь закроем функцию по следующим аргументам.

  • Теперь, если мы сначала запустим наш код, он попросит пользователя ввести значение.

  • После завершения кода он возвращает ячейку, в которой были найдены данные.

Пример # 2

В приведенном выше примере было четыре уникальных имени, но что, если в данных было более одного имени, например, рассмотрим данные ниже,

Мы видим, что имя Аран повторяется дважды в приведенных выше данных. Если excel нужно найти имя Aran, он найдет его в ячейке A2 и остановится, но есть другое значение, аналогичное значению A2 в ячейке A6. Как получить это значение? Здесь идет справка по синтаксису Find (What, After).

After определяет ячейку, по ссылке которой мы хотим искать данные.

Напишем код для приведенных выше данных.

  • Всегда не забывайте включать вкладку разработчика в параметрах, а затем в настройке ленты в Excel, чтобы иметь возможность писать код на VBA.
  • В VBA мы получаем объекты Microsoft excel, которые представляют собой модуль, в который мы пишем коды.

  • Раньше мы работали с листом 1, теперь мы работаем с листом 2, поэтому выберите лист 2 для другого модуля, и появится пустая страница.

  • Теперь начните писать код, сначала определив функцию как SUB Sample2 (), и нажмите Enter.

  • Теперь, когда мы определили нашу функцию, мы перейдем к основной части, которая определяет наши переменные.

  • Определите, что должно быть у переменной Find,

  • Выберите листы, над которыми мы работаем, в данном примере это лист 2,

  • Теперь мы найдем текст, который пользователь вводит после ячейки A2, поэтому мы определяем нашу функцию поиска, как показано ниже:

  • Теперь мы закрываем код, завершая условия with и if.

Приведенный выше код выполняет поиск в строке после ячейки A2 и возвращает ячейку, где бы она ни находилась.

То, что нужно запомнить

  1. Перво-наперво нам нужно включить вкладку разработчика, чтобы использовать VBA.
  2. Какую конкретную ценность нам нужно найти?
  3. Если значение не найдено, объект функции не устанавливается.