Jak używać ifna w vba (z przykładem)


Możesz użyć metody IfNa w VBA, aby zwrócić określoną wartość, jeśli formuła generuje błąd #N/D .

Oto typowy sposób wykorzystania IfNa w praktyce:

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

To konkretne makro próbuje użyć funkcji WYSZUKAJ.PIONOWO, aby znaleźć wartość w komórce E2 w zakresie A2:C11 .

Jeśli wartość w komórce E2 nie zostanie znaleziona, formuła wyświetli #N/A .

Możemy jednak użyć metody IfNa , aby zwrócić „Nie znaleziono wartości” zamiast #N/A .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Jak używać IfNa w VBA

Załóżmy, że mamy w programie Excel następujący zbiór danych zawierający informacje o różnych koszykarzach:

Załóżmy, że chcemy przeszukać zbiór danych pod kątem nazwy zespołu „Kings” i zwrócić odpowiednią wartość w kolumnie asyst.

W tym celu możemy utworzyć następujące makro:

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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Makro poprawnie zwraca wartość 3 asyst dla królów.

Załóżmy teraz, że zmienimy nazwę zespołu w komórce E2 na „Grizzlies”, która nie istnieje w zbiorze danych.

Kiedy ponownie uruchomimy to makro, zwróci ono komunikat „Nie znaleziono wartości”, ponieważ jest to określona przez nas wartość, która powinna zostać zwrócona, jeśli funkcja WYSZUKAJ.PIONOWO zwróci błąd #N/D.

Makro zwraca „Nie znaleziono wartości”, ponieważ Grizzlies nie istnieją w kolumnie zespołu.

Uwaga : Pełną dokumentację metody VBA IfNa znajdziesz tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak korzystać z dopasowywania indeksów
VBA: Jak sortować arkusz według wielu kolumn
VBA: jak sprawdzić, czy ciąg zawiera inny ciąg

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *