Hoe ifna in vba te gebruiken (met voorbeeld)
U kunt de IfNa- methode in VBA gebruiken om een specifieke waarde te retourneren als een formule een #N/A- fout genereert.
Hier is een gebruikelijke manier om IfNa in de praktijk te gebruiken:
Sub UseVLOOKUP()
With Application
Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub
Deze specifieke macro probeert de functie VERT.ZOEKEN te gebruiken om de waarde in cel E2 in het bereik A2:C11 te vinden.
Als de waarde in cel E2 niet wordt gevonden, geeft de formule #N/A .
We kunnen echter de IfNa- methode gebruiken om „No Value Found“ te retourneren in plaats van #N/A .
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: IfNa gebruiken in VBA
Stel dat we de volgende gegevensset in Excel hebben die informatie bevat over verschillende basketbalspelers:
Stel dat we in de dataset willen zoeken naar de teamnaam ‚Kings‘ en de corresponderende waarde willen retourneren in de assists-kolom.
We kunnen hiervoor de volgende macro maken:
Sub UseVLOOKUP()
With Application
Range(" F2 ").Value = .IfNa(.Vlookup(Range(" E2 "), Range(" A2:C11 "),3,False), "No Value Found")
End With
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
De macro retourneert correct een waarde van 3 assists voor de koningen.
Stel nu dat we de teamnaam in cel E2 veranderen in „Grizzlies“, die niet voorkomt in de dataset.
Wanneer we deze macro opnieuw uitvoeren, retourneert deze ‚Geen waarde gevonden‘, omdat dit de door ons opgegeven waarde is die moet worden geretourneerd als de functie VERT.ZOEKEN resulteert in een fout #N/B.
De macro retourneert „Geen waarden gevonden“ omdat de Grizzlies niet voorkomen in de teamkolom.
Opmerking : u kunt de volledige documentatie van de VBA IfNa -methode hier vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: indexmatching gebruiken
VBA: een blad sorteren op meerdere kolommen
VBA: hoe controleer je of een string een andere string bevat?