Зміст
Однією з найбільш важливих і широко використовуваних функцій, які ми використовуємо в Visual Basic Application (VBA) У цій статті я покажу вам, як можна використовувати функцію пошуку Функція FIND Excel з відповідними прикладами та ілюстраціями.
Завантажити Практичний посібник
Пошук функції в VBA в Excel.xlsm6 Короткі приклади використання функції FIND у VBA
Тут ми маємо набір даних з Назви книг, автори і Ціни деяких книг книгарні під назвою "Мартін Букстор".
Сьогодні наша мета - побачити різні види використання Функція пошуку з VBA з цього набору даних.
1. використання функції Find у VBA без параметру
Ви можете скористатися Функція пошуку з VBA без параметрів.
Потім він буде шукати певне значення в діапазоні комірок і повертатиме перший знайдений збіг.
Давайте пошукаємо ім'я "П. Б. Шеллі" у колонці Автор ( C4:C13 ).
Лінія з Функція пошуку буде:
Set cell = Range("C4:C17").Find("P. B. Shelly")
Повна версія VBA код буде:
⧭ Код VBA:
Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub
⧭ Виходьте:
Він виробляє Макрос під назвою Знайти Якщо запустити макрос, то він поверне $C$6 перша адреса комірки з назвою П. Б. Шеллі .
Читати далі: Пошук у діапазоні за допомогою VBA в Excel: включаючи точні та часткові збіги
2. застосувати функцію Знайти в VBA з параметром Після (для початку пошуку з певної комірки)
Ви можете скористатися Після з параметром Функція пошуку в VBA Після цього почнеться пошук значення з нижньої комірки в межах діапазону.
Для прикладу, почнемо пошук за назвою "П. Б. Шеллі" знизу клітинки C6 .
Рядок коду буде:
Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))
А повний VBA код буде:
⧭ Код VBA:
Sub Find() 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 Find() 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 = xlWhole для Саме так. збігаються, і LookAt=xlPart за Часткова збігаються.
Наприклад, спробуємо з'ясувати, чи існує книга з назвою "Ода" в Назва книги стовпчик ( B4:B13 ).
Якщо ми використовуємо xlВсього в рядку коду:
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 Find() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub
6. знайти функцію в 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 додатках. Якщо у вас виникли питання, задавайте їх нам.