Оглавление
Одна из самых важных и широко используемых функций, которую мы используем в Приложение Visual Basic (VBA) это функция Find. В этой статье я покажу вам, как вы можете использовать функция FIND Excel с соответствующими примерами и иллюстрациями.
Скачать Рабочую тетрадь для практических занятий
Найти функцию в VBA в Excel.xlsm6 быстрых примеров использования функции 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. У вас есть вопросы? Не стесняйтесь, задавайте их нам.