Як використовувати ifna у vba (з прикладом)


Ви можете використовувати метод IfNa у VBA, щоб повернути певне значення, якщо формула генерує помилку #N/A .

Ось поширений спосіб використання IfNa на практиці:

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

Цей конкретний макрос намагається використати функцію VLOOKUP, щоб знайти значення в клітинці 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 на «Grizzlies», якої немає в наборі даних.

Коли ми знову запустимо цей макрос, він поверне «Значення не знайдено», оскільки це значення, яке ми вказали, має повертатися, якщо функція VLOOKUP призводить до помилки #N/A.

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

Примітка . Ви можете знайти повну документацію методу VBA IfNa тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: Як використовувати зіставлення індексів
VBA: Як сортувати аркуш за кількома стовпцями
VBA: як перевірити, чи містить рядок інший рядок

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *