Как использовать функцию Find в VBA (6 примеров)

  • Поделись Этим
Hugh West

Одна из самых важных и широко используемых функций, которую мы используем в Приложение Visual Basic (VBA) это функция Find. В этой статье я покажу вам, как вы можете использовать функция FIND Excel с соответствующими примерами и иллюстрациями.

Скачать Рабочую тетрадь для практических занятий

Найти функцию в VBA в Excel.xlsm

6 быстрых примеров использования функции FIND в VBA

Здесь у нас есть набор данных с параметрами Названия книг, авторы и Цены некоторых книг книжного магазина под названием "Мартин Букстор".

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

1. использование функции Find в VBA без параметров

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

Затем он будет искать определенное значение в диапазоне ячеек и возвращать первое найденное совпадение.

Давайте поищем название "П. Б. Шелли" в колонке Автор ( C4:C13 ).

Линия с Найти функцию будет:

Set cell = Range("C4:C17").Find("П. Б. Шелли")

Полный код VBA будет:

Код VBA:

 Sub Найти() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub 

Выход:

Он производит Макро под названием Найти Если вы запустите макрос, он вернется к следующему результату $C$6 , адрес первой ячейки с именем П. Б. Шелли .

Читать далее: Поиск в диапазоне с помощью VBA в Excel: включая точное и частичное совпадение

2. Применение функции Find в VBA с параметром After (чтобы начать поиск с определенной ячейки)

Вы можете использовать После параметр с Найти функцию в VBA Затем он начнет поиск значения снизу ячейки в пределах диапазона.

Например, давайте начнем поиск по имени "П. Б. Шелли" из нижней камеры C6 .

Строка кода будет выглядеть следующим образом:

Set cell = Range("C4:C13").Find("П. Б. Шелли", After:=Range("C6"))

И полный код VBA будет:

Код VBA:

 Sub Найти() Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")) MsgBox cell.Address End Sub 

Выход:

Он вернется $C$13 потому что он начинает поиск снизу клетки C6 Это из камеры C7 . Так он становится П. Б. Шелли в камере C13 первый.

Читать далее: Как найти строку в ячейке с помощью VBA в Excel

3. Запуск функции Find в VBA с обводкой вокруг параметра After (для поиска значения по кругу)

Сайт После параметр с Найти функцию ищет значение круговым способом

То есть, он начинает поиск снизу ячейки в диапазоне, заканчивает поиск в диапазоне, а затем снова начинает поиск сверху диапазона.

Например, давайте начнем поиск по имени "Джон Китс" из нижней камеры C8 используя После параметр.

Строка кода будет выглядеть следующим образом:

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

И полный код VBA будет:

Код VBA:

 Sub Найти() Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8")) MsgBox cell.Address End Sub 

Выход:

Он вернется $C$7 потому что он начинает поиск снизу клетки C8 Это из камеры C9 .

Он не находит ничего до ячейки C13 , поэтому он снова начинается с клетки C4 и находит одну в ячейке C7 .

Похожие чтения:

  • Как найти строку с помощью VBA в Excel (8 примеров)
  • Поиск точного совпадения с помощью VBA в Excel (5 способов)
  • Как найти и заменить с помощью VBA (11 способов)

4. Использование функции Find в VBA с параметром LookAt (для точного или частичного совпадения)

Вы можете использовать Найти функцию в VBA с LookAt параметр.

Используйте LookAt = xlWhole для Точный соответствовать, и LookAt=xlPart для Частично матч.

Например, давайте попробуем выяснить, существует ли книга с названием "Ода" в Название книги столбец ( B4:B13 ).

Если мы используем xlWhole в строке кода:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

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

Но если вы используете:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

Потом вернется $B$9 потому что есть книга с таким названием "Ода" в ней в камере B7 , "Ода соловью".

Таким образом, полный код для частичный совпадает:

Код VBA:

 Sub Find() Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart) MsgBox cell.Address End Sub 

5. работа функции Find в VBA с параметром SearchDirection (для указания направления поиска)

Вы также можете использовать Найти функцию в VBA с SearchDirection параметр.

Используйте Направление поиска = xlNext для поиска из Сверху вниз .

И Направление поиска = xlПредыдущий для поиска из Снизу вверх .

Например, давайте попробуем найти Автора Элиф Шафак в колонке Автор ( C4:C13 ).

Если мы используем xlNext в строке кода:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

Затем он вернется $C$5 .

Но если вы используете:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)

Потом вернется $C$11 .

Таким образом, полный код для поиска из снизу вверх это:

Код VBA:

 Sub Найти() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub 

6. функция Find в VBA с параметром MatchCase (для чувствительного или нечувствительного к регистру поиска)

Наконец, вы можете использовать Найти функцию с MatchCase параметр.

Используйте MatchCase = True для с учетом регистра матч , и MatchCase=False для без учета регистра матч.

Например, давайте попробуем найти книгу "мать" в Название книги столбец ( B4:B13 ).

Если мы используем True в строке кода:

Set cell = Range("B4:B13").Find("mother", MatchCase:=True)

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

Но если вы используете:

Set cell = Range("B4:B13").Find("mother", MatchCase:=False)

Потом вернется $B$9 потому что есть книга под названием "Мать" в камере B8 .

Таким образом, полный код для без учета регистра совпадает:

Код VBA:

 Sub Find() Set cell = Range("B4:B13").Find("Mother", MatchCase:=False) MsgBox cell.Address End Sub 

Заключение

Используя эти методы, вы можете использовать функцию Find в приложении Visual Basic. У вас есть вопросы? Не стесняйтесь, задавайте их нам.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.