Функция поиска в Excel VBA

В Excel мы использовали VLookup много раз. Это есть в функции вставки, которая используется для извлечения или сопоставления любых значений, которые мы хотим. Аналогично, в VBA у нас есть приложение Lookup, которое работает так же, как Excel Vlookup. VBA Lookup имеет гибкую структуру данных, так как его можно использовать для сопоставления значений любого типа из любого вида массива таблиц. Это означает, что если мы применим Excel Vlookup, то мы не сможем сопоставить данные правого столбца с данными левого столбца в одном синтаксисе. В то время как в VBA Lookup нет правильной структуры отображения. Нам просто нужно следовать синтаксису VBA Lookup. Если синтаксис удовлетворен и правильно оформлен, то мы можем извлечь значения из правой или левой части таблицы.

Синтаксис функции поиска VBA:

Где,

  • Arg1 = значение, которое мы хотим найти .
  • Arg2 = диапазон столбцов или таблицы, откуда мы хотим искать.
  • Arg3 = Результат в виде логического значения или вектора.

Как использовать функцию поиска в Excel VBA?

Мы узнаем, как использовать функцию поиска в Excel, используя код VBA.

Вы можете скачать этот шаблон Excel VBA Lookup здесь - Шаблон Excel VBA Lookup

VBA Lookup - пример № 1

Существует много способов написания кода поиска VBA. В этом примере мы увидим простой способ написания VBA Lookup. Для этого у нас есть набор данных, как показано ниже. В этой таблице указано количество гонок и средняя скорость гонщиков. Теперь мы будем использовать эти данные для применения VBA Lookup в таблице ниже с синими заголовками от A8 до B8. Для этого выполните следующие шаги:

Шаг 1. Откройте модуль на вкладке меню «Вставка», как показано ниже.

Шаг 2: Запишите подпроцедуру для выполненной работы в этом модуле. Здесь мы выбрали имя VBA Lookup.

Код:

 Sub VBA_Lookup1 () End Sub 

Шаг 3: Выберите выходную ячейку, где нам нужно увидеть значение поиска. Здесь эта ячейка - B9, где мы будем искать значение со значением «Aniket», которое является нашим значением поиска.

Код:

 Sub VBA_Lookup1 () Диапазон ("B9"). Значение End Sub 

Шаг 4: Теперь мы будем использовать функцию «Рабочий лист» и выбрать встроенную функцию « Поиск» в списке, как показано ниже.

Код:

 Sub VBA_Lookup1 () Range ("B9"). Значение = WorksheetFunction.Lookup End Sub 

Шаг 5: Как только мы выберем функцию Lookup, мы увидим Arg1, Arg2 и Arg3 в ее синтаксисе. Для этого мы сначала поместим наш диапазон значений Lookup, который является ячейкой A9 вместо Arg1.

Код:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, End Sub 

Шаг 6: Теперь для Arg2 выберите диапазон поиска из ячейки A2: A5.

Код:

 Sub VBA_Lookup1 () Range ("B9"). Значение = WorksheetFunction.Lookup (Range ("A9"). Значение, диапазон ("A2: A5"), End Sub 

Шаг 7: Наконец, выберите диапазоны значений поиска от B2 до B5 вместо Arg3.

Код:

 Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, Range ("A2: A5"), Range ("B2: B5")) End Sub 

Шаг 8: Запустите код, нажав клавишу F5 или нажав кнопку воспроизведения, расположенную под лентой меню. Мы увидим, что согласно Lookup, количество гонок под именем «Аникет» равно 7.

VBA Lookup - пример № 2

Есть другой способ применить функцию Lookup в Excel VBA. Для этого мы будем использовать те же данные, которые мы видели в примере-1. Для этого выполните следующие шаги:

Шаг 1: Запишите подпроцедуру для VBA Lookup, как показано ниже.

Код:

 Sub VBA_Lookup2 () End Sub 

Шаг 2: Определите переменную как String, которая будет использоваться для сопоставления столбца Name.

Код:

 Sub VBA_Lookup2 () Dim Name As String End Sub 

Шаг 3: В определенной переменной Name мы будем применять приложение Vlookup, как показано ниже.

Код:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup (End Sub 

Шаг 4: Допустим, наша поисковая ценность называется «Ashwani» из таблицы.

Код:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", End Sub 

Шаг 5: И диапазон от А1 до С6 от Лист1.

Код:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), End Sub 

Шаг 6: Теперь, если мы хотим увидеть здесь среднюю скорость гонщика «Ашвани», нам нужно отобразить ячейку в синтаксисе «Уточняющий запрос», которая находится на 3- м месте.

Код:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) End Sub 

Шаг 7: Теперь, чтобы увидеть среднюю скорость гонщика «Ashwani», мы можем использовать MsgBox и Debug Print. Но использование Debug Print намного лучше, чем MsgBox. Так что назначьте Debug Print с определенной переменной Name.

Код:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub 

Шаг 8: Теперь откройте Immediate Window, которое находится на вкладке меню View, чтобы увидеть результат.

Шаг 9: Скомпилируйте код и запустите его. Мы увидим, Lookup работал со скоростью Ashwani и извлек это в окно Immediate как 86 .

Код:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub 

VBA Lookup - пример № 3

Для использования функции поиска в Excel VBA выполните следующие действия:

Шаг 1: Запишите подпроцедуру для VBA Lookup, как показано ниже.

Код:

 Sub VBA_Lookup3 () End Sub 

Шаг 2: Объявите переменную для Name как String, как показано ниже.

Код:

 Sub VBA_Lookup3 () Dim Name As String End Sub 

Шаг 3: Теперь назначьте имя, которое хотите найти, определенной переменной Name, как показано ниже.

Код:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" End Sub 

Шаг 4: Теперь используйте любое слово для определения и используйте Lookup, скажем, LUp . И в этом используйте функцию рабочего листа с Vlookup, как показано ниже.

Код:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (MsgBox "Средняя скорость равна:" & LUp End Sub 

Шаг 5: Теперь используйте тот же синтаксис Vlookup, который мы используем в Excel. В Arg1 поместите переменную Name, затем выберите матрицу диапазона и найдите значение up, которое мы хотим получить. Здесь этот столбец 3, как показано ниже.

Код:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Средняя скорость равна:" & LUp End Sub 

Шаг 6: Теперь используйте MsgBox, чтобы увидеть результат.

Код:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Средняя скорость равна:" & LUp End Sub 

Шаг 7: Скомпилируйте и запустите код. Мы увидим, что для имени «Deepinder» средняя скорость равна 88. Принимая во внимание то же значение для имени Deepinder в таблице.

Код:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Средняя скорость равна:" & LUp End Sub 

Плюсы Excel VBA Функция поиска

  • Он так же прост в использовании и применении, как и обычные формулы Excel Vlookup в Excel.
  • Мы можем использовать любой вид диапазона и матрицы в VBA Lookup.
  • При применении VBA Lookup очень мало или совсем нет ограничений.

То, что нужно запомнить

  • Мы можем использовать Lookup вместо Vlookup в любой ситуации.
  • Диапазон для вектора подстановки и вектора результата должен быть одинаковым.
  • После завершения приложения сохраните файл в формате Macro Enable, чтобы сохранить код.
  • Нет обязательного требования ставить столбец результата каждый раз, когда он находится справа от значения поиска.

Рекомендуемые статьи

Это руководство к функции поиска VBA. Здесь мы обсудим, как использовать функцию Lookup в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Коллекция VBA (Примеры)
  2. VBA IF Заявления | Шаблоны Excel
  3. Как использовать функцию сортировки Excel VBA?
  4. VBA While Loop (Примеры с шаблоном Excel)
  5. VBA Environ

Категория: