Vba: как использовать vlookup с другого листа
Вы можете использовать следующий базовый синтаксис для выполнения ВПР из другого листа с помощью VBA:
Sub Vlookup()
Range(" B2 ").Value = WorksheetFunction.Vlookup(Range(" A2 "), Sheets(" Sheet2 ").Range(" A2:C11 "),3,False)
End Sub
В этом конкретном примере выполняется поиск значения в ячейке A2 текущего листа в диапазоне A2:C11 листа с именем Sheet2 и находит соответствующее значение в третьем столбце диапазона, а затем присваивается результат ячейке B2 текущего листа.
Примечание . Последний аргумент False указывает, что нам нужно точное совпадение.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: как использовать VLOOKUP из другого листа в VBA
Допустим, у нас есть следующий набор данных на листе под названием «Лист2» в книге Excel, который содержит информацию о различных баскетболистах:
Теперь предположим, что мы переходим на лист под названием Лист1 и хотим найти название команды «Короли» в наборе данных Листа2 и вернуть соответствующее значение в столбце «Помощь» Листа1 .
Для этого мы можем создать следующий макрос:
Sub Vlookup()
Range(" B2 ").Value = WorksheetFunction.Vlookup(Range(" A2 "), Sheets(" Sheet2 ").Range(" A2:C11 "),3,False)
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Макрос правильно возвращает значение 3 передачи для королей.
Если мы изменим имя команды в ячейке A2 , а затем снова запустим макрос, он правильно найдет вспомогательное значение для нового имени команды.
Например, предположим, что мы меняем название команды на «Воины» и снова запускаем макрос:
Макрос корректно возвращает значение 4 передачи для «Уорриорз».
Примечание . Полную документацию по методу VBA VLookup можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как использовать сопоставление индексов
VBA: как отсортировать лист по нескольким столбцам
VBA: как проверить, содержит ли строка другую строку