Excel VBA Find
Коли ми використовуємо Find на звичайному робочому аркуші, ми натискаємо комбінацію клавіш CTRL + F і вводимо дані, які нам потрібно знайти, а якщо не бажане значення, переходимо до наступного збігу, якщо таких збігів багато, це нудне завдання, але коли ми використовуємо FIND у VBA, він виконує завдання за нас і дає нам точну відповідність, і для цього потрібно три аргументи, один - що знайти, де знайти і де подивитися.
Перш ніж перейти до VBA і почати використовувати функцію пошуку в макросах, нам слід спочатку дізнатися, що таке функція пошуку в Excel. У звичайному Excel на вкладці Домашня сторінка під групою редагування ми можемо знайти функцію пошуку, яка використовується для пошуку рядка або значення в діапазоні комірок або цілому аркуші.
Коли ми натискаємо на це, ми отримуємо два варіанти;
Одного просто знайти,
Ми бачимо, що він також має режим опцій, який відкриває ще одну функцію.
Він виконує алгоритм пошуку з чотирма обмеженнями: Знайти що, Усередині, Шукати та шукати.
Другий варіант у excel - знайти та замінити, що використовується, коли ми знаходимо рядок, але що замінити його будь-яким іншим значенням,
Знайдіть синтаксис функції
Вище ми дізналися, що таке Find in basic excel. У VBA ми пишемо коди вручну, але функції такі ж, як і в звичайній Excel. Спочатку давайте розглянемо синтаксис.
Вираз.Знайди (Що, дивись, ...)
Якщо значення, яке ми шукаємо, знайдено за допомогою функції excel, воно повертає клітинку, де знаходиться значення, а якщо значення не знайдено, то для об’єкта функції не встановлено значення.
Вирази в макросах - це визначені діапазони, такі як діапазон 1 або діапазон 2. Що таке ключове слово для того, що ми хочемо шукати для певного значення? Lookin - це ключове слово для того, що ми намагаємось шукати, - це коментар, формула чи рядок. Подібним чином, існують інші обмеження у функції Find, які є необов’язковими. Єдине обов’язкове поле - це значення, яке ми намагаємось шукати.
По суті, VBA вважає, що Excel має один обов’язковий аргумент, яке значення ми хочемо шукати. Решта обмежень є необов'язковими, і існує багато обмежень у функції пошуку. Функція пошуку подібна до функції пошуку у Excel.
Параметром функції пошуку є діапазон комірок. Як у якому діапазоні ми хочемо знайти значення. Це може бути кілька стовпців або кілька комірок або цілий аркуш.
Приклади
Ви можете завантажити цей шаблон функцій VBA FIND Excel тут - Шаблон Excel функції VBA FINDПриклад №1
Припустимо, наші дані мають такі значення
Ми спробуємо знайти “Аран” в тих самих даних.
- Для написання коду VBA необхідно мати ввімкнену вкладку розробника в Excel, щоб мати можливість писати коди VBA.
- Ми починаємо писати наш код, пишучи наступний код, як показано нижче,
Затемнення знаходить як рядок
Приглушити Rng як діапазон
FindS = InputBox (“Введіть значення, яке потрібно шукати”)
З аркушами (“Аркуш1”). Діапазон (“А: А”)
- Зразок - це назва функції, присвоєна додатковій.
- Знайти - це рядок, який ми хочемо шукати для користувача, якого ми хочемо ввести.
- Rng - це змінна, яку ми взяли для діапазону.
- Тепер ми просимо користувача ввести значення, яке виглядає як на скріншоті нижче,
- Тепер ми визначимо нашу функцію пошуку в модулі.
- Функція знаходить значення, введене користувачем у заданому діапазоні.
- Тепер ми закриваємо функцію такими аргументами.
- Тепер, якщо ми спочатку запускаємо наш код, він запитує запит користувача про значення.
- Після завершення коду він повертає комірку туди, де були знайдені дані.
Приклад №2
У наведеному вище прикладі було чотири унікальних імена, але що, якби в даних було більше одного імені, наприклад, розгляньте наведені нижче дані,
Ми бачимо, що ім'я Аран повторюється двічі у вищезазначених даних. Якщо excel повинен знайти ім'я Aran, він знайде його в комірці A2 і зупинить, але є інше значення, подібне до значення A2 в комірці A6. Як отримати це значення? Ось синтаксис Find (What, After) у довідці.
Після визначає комірку, після якої посилання ми хочемо здійснити пошук даних.
Давайте напишемо код для наведених даних.
- Завжди пам’ятайте, щоб увімкнути вкладку розробника з опцій, а потім зі налаштування стрічки в Excel, щоб мати можливість писати код у VBA.
- У VBA ми отримуємо об'єкти Microsoft Excel, що є модулем, куди ми пишемо коди.
- Раніше ми працювали над аркушем 1, зараз ми працюємо з аркушем 2, тому виберіть аркуш 2 для іншого модуля і з’явиться порожня сторінка.
- Тепер почніть писати код, визначивши функцію спочатку як SUB Sample2 () і натисніть клавішу Enter.
- Тепер, коли ми визначили свою функцію, ми почнемо входити в основну частину, яка визначає наші змінні.
- Визначте, що має містити змінна Find,
- Виберіть аркуші, над якими ми працюємо, а це аркуш 2 у цьому прикладі,
- Тепер ми знайдемо текст, що користувач введе після комірки А2, тому ми визначаємо нашу функцію пошуку, як показано нижче,
- Тепер ми закриваємо код, закінчуючи умовами if і if.
Наведений вище код робить пошук у рядку після комірки A2 і повертає клітинку, де б вона не була знайдена.
Що слід пам’ятати
- Перш за все, нам потрібно увімкнути вкладку розробника, щоб використовувати VBA.
- Яке конкретне значення нам потрібно знайти?
- Якщо значення не знайдено, для об'єкта функції не встановлено значення.