Как использовать ifna в vba (с примером)


Вы можете использовать метод IfNa в VBA, чтобы вернуть определенное значение, если формула генерирует ошибку #Н/Д .

Вот распространенный способ использования IfNa на практике:

 Sub UseVLOOKUP()
    With Application
    Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub

Этот конкретный макрос пытается использовать функцию ВПР, чтобы найти значение в ячейке E2 в диапазоне A2:C11 .

Если значение в ячейке E2 не найдено, формула выдаст #N/A .

Однако мы можем использовать метод IfNa для возврата «Значение не найдено» вместо #N/A .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: как использовать IfNa в VBA

Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетболистах:

Допустим, мы хотим найти в наборе данных название команды «Короли» и вернуть соответствующее значение в столбце передач.

Для этого мы можем создать следующий макрос:

 Sub UseVLOOKUP()
    With Application
    Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Макрос правильно возвращает значение 3 передачи для королей.

Теперь предположим, что мы меняем название команды в ячейке E2 на «Гризлис», которого нет в наборе данных.

Когда мы снова запустим этот макрос, он вернет «Значение не найдено», поскольку именно указанное нами значение должно быть возвращено, если функция ВПР приведет к ошибке #Н/Д.

Макрос возвращает «Значения не найдены», поскольку «Гриззлис» не существует в столбце команды.

Примечание . Полную документацию по методу VBA IfNa можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как использовать сопоставление индексов
VBA: как отсортировать лист по нескольким столбцам
VBA: как проверить, содержит ли строка другую строку

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *