Функція пошуку VBA Excel
Крім того, ми багато разів використовували VLookup. Саме там функція Insert використовується для отримання або відображення будь-якого типу значень, які ми хочемо. Аналогічно, у VBA у нас є програма Lookup, яка працює так само, як Excel Vlookup. Пошук VBA має гнучку структуру даних, оскільки його можна використовувати для відображення будь-якого значення з будь-якого типу табличного масиву. Це означає, що якщо ми застосуємо Excel Vlookup, ми не зможемо зіставити дані правого стовпця з даними лівого стовпця в одному синтаксисі. Тоді як у пошуку VBA немає належної структури відображення. Нам просто потрібно слідувати синтаксису пошуку VBA. Якщо синтаксис задоволений і правильно обрамлений, ми можемо отримати значення з правої або лівої частини таблиці.
Синтаксис функції пошуку VBA:
Де,
- Arg1 = Значення, яке ми хочемо шукати.
- Arg2 = Діапазон стовпців або таблиці, звідки ми хочемо шукати.
- Arg3 = Результат як булева чи векторна.
Як використовувати функцію пошуку в Excel VBA?
Ми дізнаємось, як використовувати функцію пошуку в Excel за допомогою коду VBA.
Ви можете завантажити цей шаблон Excel Lookup Excel тут - Шаблон VBA Lookup ExcelПошук VBA - приклад №1
Існує багато способів написання коду пошуку VBA. У цьому прикладі ми побачимо простий спосіб написання пошуку VBA. Для цього у нас є набір даних, як показано нижче. Ця таблиця містить кількість перегонів і середню швидкість гонщиків. Тепер ми будемо використовувати ці дані, щоб застосувати пошук VBA у таблиці нижче із синіми заголовками від A8 до B8. Для цього виконайте наступні кроки:
Крок 1: Відкрийте модуль на вкладці меню Вставка, як показано нижче.
Крок 2: Напишіть підпроцедуру для виконаних робіт у цей модуль. Тут ми вибрали ім'я як VBA Lookup.
Код:
Sub VBA_Lookup1 () Кінець Sub
Крок 3: Виберіть вихідну комірку, де нам потрібно побачити значення пошуку. Тут ця клітинка - B9, де ми будемо шукати зі значенням, що стосується імені "Aniket", яке є нашим значенням пошуку.
Код:
Sub VBA_Lookup1 () Діапазон ("B9"). Значення Кінець Sub
Крок 4: Тепер ми будемо використовувати функцію робочого листа і виберемо функцію пошуку, вбудовану в список, як показано нижче.
Код:
Sub VBA_Lookup1 () Діапазон ("B9"). Значення = WorksheetFunction.Lookup End Sub
Крок 5: Після вибору функції пошуку, ми побачимо Arg1, Arg2 та Arg3 в його синтаксисі. Для цього ми спочатку поставимо наш діапазон значень Lookup, який є клітиною A9 замість Arg1.
Код:
Sub VBA_Lookup1 () Діапазон ("B9"). Значення = WorksheetFunction.Lookup (Діапазон ("A9"). Значення, Кінець Sub
Крок 6: Тепер для Arg2 виберіть діапазон пошуку, який знаходиться в комірці A2: A5.
Код:
Sub VBA_Lookup1 () Діапазон ("B9"). Значення = WorksheetFunction.Lookup (Діапазон ("A9"). Значення, Діапазон ("A2: A5"), Кінець Sub
Крок 7: Нарешті, виберіть діапазон значень пошуку, який становить від B2 до B5 замість Arg3.
Код:
Sub VBA_Lookup1 () Діапазон ("B9"). Значення = WorksheetFunction.Lookup (Діапазон ("A9"). Значення, Діапазон ("A2: A5"), Діапазон ("B2: B5")) Кінець Sub
Крок 8: Запустіть код натисканням клавіші F5 або натисканням кнопки відтворення, розташованої під стрічкою меню. Ми побачимо, згідно з Lookup, кількість перегонів, проведених назвою "Aniket", становить 7.
Пошук VBA - приклад №2
Є ще один спосіб застосувати функцію пошуку в Excel VBA. Для цього ми будемо використовувати ті самі дані, що ми бачили в прикладі-1. Для цього виконайте наступні кроки:
Крок 1: Напишіть підпроцедуру для пошуку VBA, як показано нижче.
Код:
Sub VBA_Lookup2 () Кінець Sub
Крок 2: Визначте змінну як String, яка буде використана для відображення стовпця Ім'я.
Код:
Sub VBA_Lookup2 () Dim ім'я як рядок Кінець Sub
Крок 3: У визначеній змінній Ім'я ми застосуємо додаток Vlookup, як показано нижче.
Код:
Sub VBA_Lookup2 () Dim ім'я як ім'я рядка = Application.VLookup (End Sub
Крок 4: Скажімо, наше значення пошуку з назви "Ashwani" з таблиці.
Код:
Sub VBA_Lookup2 () Dim ім'я як ім'я рядка = Application.VLookup ("Ashwani", End Sub
Крок 5: І діапазон від A1 до C6 від Sheet1.
Код:
Під VBA_Lookup2 () ім'я диму як ім'я рядка = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), End Sub
Крок 6: Тепер, якщо ми хочемо побачити тут середню швидкість наїзника "Ашвані", нам потрібно скласти карту в синтаксисі "Пошук", який знаходиться на 3 -му місці.
Код:
Під VBA_Lookup2 () ім'я диму як ім'я рядка = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Кінець Sub
Крок 7: Тепер, щоб побачити середню швидкість наїзника «Ашвані», ми можемо використовувати MsgBox та Debug Print і те, і інше. Але використання Debug Print набагато краще, ніж MsgBox. Тож призначте налагодження друку з визначеною змінною Name.
Код:
Sub VBA_Lookup2 () Dim ім'я як ім'я рядка = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub
Крок 8: Тепер відкрийте негайне вікно, яке знаходиться на вкладці меню « Вид », щоб побачити вихід.
Крок 9: Складіть код і запустіть його. Ми побачимо, що Lookup зіставив зі швидкістю Ашвані та потрапив у Негайне вікно як 86 .
Код:
Sub VBA_Lookup2 () Dim ім'я як ім'я рядка = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub
Пошук VBA - приклад №3
Для використання функції пошуку в excel VBA виконайте наступні кроки:
Крок 1: Напишіть підпроцедуру для пошуку VBA, як показано нижче.
Код:
Sub VBA_Lookup3 () Кінець Sub
Крок 2: Оголосіть змінну для імені як рядка, як показано нижче.
Код:
Sub VBA_Lookup3 () Dim Dim Ім'я як String End Sub
Крок 3: Тепер призначте ім'я, яке хоче знайти, визначеній змінній Ім'я, як показано нижче.
Код:
Sub VBA_Lookup3 () Dim ім'я як ім'я рядка = "Deepinder" Кінець Sub
Крок 4: Тепер використовуйте будь-яке слово, щоб визначити, а Lookup дозволяє сказати LUp . І в цьому використовуйте функцію робочого листа з Vlookup, як показано нижче.
Код:
Sub VBA_Lookup3 () Dim ім'я як ім'я рядка = "Deepinder" LUp = Application.WorksheetFunction.VLookup (MsgBox "Середня швидкість:" & LUp End Sub
Крок 5: Тепер використовуйте той самий синтаксис Vlookup, який ми використовуємо в Excel. В Arg1 помістіть змінну Name, потім виберіть матрицю діапазону і шукайте значення, яке ми хочемо отримати. Тут цей стовпець 3, як показано нижче.
Код:
Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Ім'я, Sheet1.Range ("A2: C6"), 3, помилково) MsgBox "Середня швидкість:" & LUp End Sub
Крок 6: Тепер використовуйте MsgBox, щоб побачити вихід.
Код:
Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Ім'я, Sheet1.Range ("A2: C6"), 3, помилково) MsgBox "Середня швидкість:" & LUp End Sub
Крок 7: Складіть і запустіть код. Ми побачимо, що для назви «Deepinder» середня швидкість дорівнює 88. В той час як у таблиці вказане те саме значення для імені Deepinder.
Код:
Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Ім'я, Sheet1.Range ("A2: C6"), 3, помилково) MsgBox "Середня швидкість:" & LUp End Sub
Плюси функції пошуку Excel VBA
- Це настільки ж просто у використанні та реалізації, як застосування регулярних формул Excel Vlookup у Excel.
- Ми можемо використовувати будь-який діапазон і матрицю в пошуку VBA.
- При застосуванні пошуку VBA дуже мало обмежень або їх немає.
Що потрібно пам’ятати
- Ми можемо використовувати Lookup замість Vlookup у будь-якій ситуації.
- Діапазон для вектора пошуку та вектора результату повинен бути однаковим.
- Після закінчення програми збережіть файл у форматі Macro Enable, щоб зберегти код.
- Немає обов'язкової вимоги щоразу ставити стовпець результату праворуч від значення пошуку.
Рекомендовані статті
Це посібник щодо функції пошуку VBA. Тут ми обговорюємо, як використовувати функцію пошуку в Excel VBA разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -
- Колекція VBA (приклади)
- Виписки VBA IF | Шаблони Excel
- Як використовувати функцію сортування Excel VBA?
- VBA while цикл (приклади з шаблоном Excel)
- VBA Environment