Як використовувати VLOOKUP в VBA (4 способи)

  • Поділитися Цим
Hugh West

З точки зору пошуку або перегляду певних значень або елементів, MS Excel надає різні функції. ПЕРЕГЛЯД Вона допомагає нам шукати потрібні дані з будь-якого набору даних. Вона дозволяє нам вказати, чи потрібно шукати точний збіг або приблизний збіг. Поряд з використанням цієї функції у формулі Excel, ми можемо використовувати її і в коді VBA. У цій статті ми побачимо, як ми можемо використовувати цю функцію Функція VLOOKUP на VBA.

Завантажити Робочий зошит з практики

VLOOKUP в VBA.xlsm

4 Способи використання VLOOKUP у VBA

1. пошук даних вручну за допомогою VLOOKUP в VBA

Нехай у нас є набір даних про працівника з його ідентифікатором, прізвищем, відділом, датою прийняття на роботу і зарплатою. Тепер наше завдання - знайти інформацію про працівника за його ідентифікатором вручну. У цьому розділі ми просто знайдемо зарплату працівника за його ідентифікатором.

Крок 1: Виберіть Visual Basic під Розробник вкладка (Ярлик Alt + F11 )

Крок 2: Після цього з'явиться вікно, виберіть Модуль опціон за Вставка кнопка

Крок 3: Тепер напишіть в консолі VBA наступний код і натисніть клавішу Біжи (Ярлик F5 )

Код:

 Sub vlookup_function_1() Dim Employee_id As Long Dim salary As Long Employee_id = 1144 Set myerange = Range("B4:F11") salary = Application.WorksheetFunction.VLookup(Employee_id, myerange, 5, False) MsgBox "Ідентифікатор працівника:" & Employee_id & " Оклад " & "$" & salary End Sub 

Крок 4: Після цього з'явиться спливаюче повідомлення, в якому буде показана інформація

Читати далі: VLOOKUP для пошуку тексту в Excel (4 простих способи)

2. пошук даних з введенням з використанням VLOOKUP в VBA

Тепер давайте подивимося, як ми можемо шукати або витягувати дані з таблиць або діапазонів за допомогою введення. Як на малюнку, ми дізнаємося ім'я введеного ідентифікатора з таблиці відомостей про співробітника.

Крок 1: Спочатку відкрийте консоль VBA, виконавши ті ж кроки з 1 по 2

Крок 2: Тепер у вікні VBA вводимо наступний код

Код:

 Sub vlookup_function_2() Set myerange = Range("B4:F11") Set ID = Range("D13") Set Name = Range("D14") Name.Value = Application.WorksheetFunction.VLookup(ID, myerange, 2, False) End Sub 

Крок 3: Тепер введіть будь-який ідентифікатор в комірку D13 і запустіть код

Крок 4: На сьогоднішній день, на жаль, це не так. Ім'я та прізвище який зберігається проти ідентифікатора, буде показано

Читати далі: 10 кращих практик з VLOOKUP в Excel

Схожі читання

  • VLOOKUP не працює (8 причин та шляхи вирішення)
  • Функція INDEX MATCH vs VLOOKUP (9 прикладів)
  • Використання СЦЕПИ з декількома критеріями в Excel (6 способів + альтернативи)
  • ВТРАХУНОК Excel для пошуку останнього значення в стовпці (з альтернативами)
  • ВЛОКЗАП Excel для повернення декількох значень по вертикалі

3. пошук інформації за допомогою поля введення з використанням VLOOKUP у VBA

Розглянемо, як можна здійснити пошук даних з допомогою поля вводу VBA. Для пошуку потрібно використати оператор ПЕРЕГЛЯД Знову ж таки, набір даних буде той самий, але підхід до пошуку буде іншим. Тут наше завдання - дізнатися зарплату співробітника, ввівши ID і відділ.

Крок 1: Спочатку відкрийте вікно VBA, виконавши ті ж кроки з 1 по 2

Крок 2: Тепер введіть в консолі VBA наступний код і Біжи це

Код:

 Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i End Sub 

Крок 3: У результаті буде виведено комбінований рядок з ідентифікатором та департаментом у першому стовпчику

Крок 4: Тепер знову переходимо в консоль VBA і вводимо повний код і знову запускаємо

Код:

 Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i Dim ID As Long Dim department As String Dim lookup_val As String Dim salary As Long ID = InputBox("Введіть ID співробітника") department = InputBox("Введіть відділ співробітника") lookup_val = ID & "_" & department OnПомилка GoTo Перевірка повідомлення: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("Оклад працівника становить $" & salary) Повідомлення: If Err.Number = 1004 Then MsgBox ("Дані працівника відсутні") End If End Sub 

Пояснення коду

  • По-перше, Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value за допомогою цього коду ми зберігаємо в стовпчик A конкатенацію значень Ідентифікатора та Відділу.
  • lookup_val = ID & "_" & відділу Це визначає, що значенням пошуку буде ідентифікатор та відділ.
  • salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) тут ми зберігаємо зарплату знайденого співробітника в змінну з ім'ям заробітна плата
  • If Err. Number = 1004 Then це перевірка умови. Ми перевіряємо, чи дорівнює номер помилки 1004 чи ні. В Excel VBA код 1004 означає, що шукане значення не знайдено, видалено або вилучено.

Крок 5: Тепер з'явиться спливаюче вікно, як на цьому малюнку. Введіть ПОСВІДЧЕННЯ ОСОБИ і Департамент послідовно

Крок 6: Після натискання кнопки Гаразд. буде показано кінцевий результат

Крок 7: Якщо ви ввели невірні дані ПОСВІДЧЕННЯ ОСОБИ або Департамент, на екрані з'явиться наступне повідомлення

Читати далі: Як створити СРЗНАЧЕННЯ з кількома умовами в Excel (2 способи)

4. пошук інформації за допомогою кнопки з використанням VLOOKUP у VBA

Тепер подивимося, як можна дізнатися інформацію за допомогою кнопки замість того, щоб запускати код вручну. Знову ж таки, набір даних буде таким же, як і вище.

Крок 1: Спочатку виберіть Вставка опціону в рамках Розробник вкладка

Крок 2: Потім виберіть пункт Кнопка опція від Вставка

Крок 3: Розмістіть кнопку відповідно до Ваших вимог і дайте назву кнопці

Крок 4: Тепер клацніть правою кнопкою миші по кнопці і виберіть Призначити макрос

Крок 5: Тепер створіть новий макрос і назвіть його vlookup_function_4

Крок 6: Напишіть в консолі VBA нижченаведений код і виконайте Біжи код

Код:

 Sub vlookup_function_4() Dim rng As Range, FinalResult As Variant, Table_Range As Range, LookupValue As Range Set rng = Sheets("Sheet4").Range("D15") Set Table_Range = Sheets("Sheet4").Range("B4:F11") Set LookupValue = Sheets("Sheet4").Range("D14") FinalResult = Application.WorksheetFunction.VLookup(LookupValue, Table_Range, 5, False) rng = FinalResult End Sub 

Крок 6: Тепер введіть будь-який ідентифікатор і натисніть кнопку

Читати далі: Використання VBA VLOOKUP для пошуку значень з іншого аркуша в Excel

Важливі моменти для запам'ятовування

Типові помилки Коли вони показують
1004 помилка Коли код VBA vlookup не може знайти lookup_value, він видасть помилку 1004.
Функція VLOOKUP не знайдена в VBA Функцію Vlookup можна викликати в Excel VBA за допомогою функції WorksheetFunction.
Обробка помилок Помилку в функції vlookup можна контролювати за допомогою гото якщо він повертає помилку.

Висновок

Ось деякі способи використання ПЕРЕГЛЯД Я показав всі методи з відповідними прикладами, але ітерацій може бути багато. Я також обговорив основи використовуваних функцій. Якщо у вас є інший метод досягнення цього, то, будь ласка, не соромтеся поділитися з нами.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.