Как использовать xlookup в vba (с примерами)
Вы можете использовать следующий базовый синтаксис для выполнения XLOOKUP с помощью VBA:
Sub Xlookup()
Range(" F2 ").Value = WorksheetFunction.Xlookup(Range(" E2 "), Range(" A2:A11 "), Range(" C2:C11 "))
End Sub
В этом конкретном примере выполняется поиск значения в ячейке E2 в диапазоне A2:A11 и находит соответствующее значение в диапазоне C2:C11 , а затем присваивается результат ячейке F2 .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: как использовать XLOOKUP в VBA
Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетболистах:
Допустим, мы хотим найти в наборе данных название команды «Короли» и вернуть соответствующее значение в столбце передач.
Для этого мы можем создать следующий макрос:
Sub Xlookup()
Range(" F2 ").Value = WorksheetFunction.Xlookup(Range(" E2 "), Range(" A2:A11 "), Range(" C2:C11 "))
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Макрос правильно возвращает значение 3 передачи для королей.
Если мы изменим имя команды в ячейке E2 , а затем снова запустим макрос, он правильно найдет вспомогательное значение для нового имени команды.
Например, предположим, что мы меняем название команды на «Воины» и снова запускаем макрос:
Макрос корректно возвращает значение 4 передачи для «Уорриорз».
Обратите внимание, что вы также можете добавить необязательный четвертый аргумент в функцию Xlookup , чтобы указать значение, которое должно отображаться, если совпадение не найдено.
Например, вы можете использовать следующий макрос для запуска функции XLOOKUP и возврата «Нет», если совпадение не найдено:
Sub Xlookup()
Range(" F2 ").Value = WorksheetFunction.Xlookup(Range(" E2 "), Range(" A2:A11 "), Range(" C2:C11 "), "None")
End Sub
Не стесняйтесь заменять «Нет» любым значением, которое вы хотите отобразить.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как использовать сопоставление индексов
VBA: как использовать ВПР
VBA: как использовать VLOOKUP с другого листа