Как использовать VLOOKUP в VBA (4 способа)

  • Поделись Этим
Hugh West

Для поиска или просмотра определенных значений или элементов MS Excel предоставляет различные функции. VLOOKUP Это одна из них. Она помогает нам искать нужные данные в любом наборе данных. Она позволяет нам указать, искать ли точное или приблизительное совпадение. Наряду с использованием этой функции в формуле 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:" & Employee_id & " Salary " & "$" & 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 в сравнении с функцией VLOOKUP (9 примеров)
  • Использование VLOOKUP с несколькими критериями в Excel (6 методов + альтернативы)
  • Excel VLOOKUP для поиска последнего значения в столбце (с альтернативами)
  • Excel VLOOKUP для возврата нескольких значений по вертикали

3. Поиск информации в поле ввода с помощью VLOOKUP в VBA

Давайте посмотрим, как мы можем искать данные с помощью поля ввода VBA. Для поиска нам нужно использовать команду VLOOKUP Функция в коде 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: Это выведет комбинированную строку с ID и Department в первом столбце

Шаг 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 OnError GoTo Message check: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("Зарплата сотрудника составляет $" & salary) Message: If Err.Number = 1004 Then MsgBox ("Данные сотрудника отсутствуют") End If End Sub 

Объяснение кода

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

Шаг 5: Появится всплывающее окно, как на этом рисунке. Enter ID и Департамент последовательно

Шаг 6: После нажатия кнопки Хорошо кнопка будет показан окончательный результат

Шаг 7: Если вы введете неправильный ID или Департамент, появится следующее сообщение

Читать далее: Как использовать VLOOKUP с несколькими условиями в 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 можно контролировать с помощью параметра перейти на оператор, если он возвращает ошибку.

Заключение

Вот некоторые способы использования VLOOKUP Я показал все методы с соответствующими примерами, но может быть и много других итераций. Я также обсудил основы используемых функций. Если у вас есть другой метод достижения этой цели, то, пожалуйста, не стесняйтесь поделиться им с нами.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.