Как использовать 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: как проверить, содержит ли строка другую строку