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 и возвращает ячейку, где бы она ни находилась.
То, что нужно запомнить
- Перво-наперво нам нужно включить вкладку разработчика, чтобы использовать VBA.
- Какую конкретную ценность нам нужно найти?
- Если значение не найдено, объект функции не устанавливается.