Hoe gebruik ik de geneste if-functie van vba?
In VBA kunt u een IF-instructie binnen een andere IF-instructie gebruiken om geneste IF’s te maken. In eenvoudige bewoordingen kunt u met IF een testinstructie uitvoeren op basis van het resultaat van een andere IF-instructie. Bij dit type voorwaardelijke verklaring moet u complexe voorwaarden testen. Laten we een voorbeeld bekijken:
In het bovenstaande voorbeeld testen we twee voorwaarden, voorwaarde1 (1 + 1 = 2) en voorwaarde2 (2 + 2 = 4).
Maar aangezien we de IF-instructie binnen de IF-instructie zijn, zal VBA eerst de eerste voorwaarde testen en dan doorgaan naar de volgende IF.
In de tweede IF hebben we een berichtvenster om aan te geven of de voorwaarde WAAR is.
Sub myMacro1() 'first if statement If 1 + 1 = 2 Then 'second if statement If 2 + 2 = 4 Then MsgBox True End If Else MsgBox False End If End Sub
Hier is een voorbeeld van het gebruik van meerdere ALS’s in één ALS.
Er is een verschil tussen het voorbeeld dat we eerder gebruikten en in het bovenstaande voorbeeld: In deze code gebruikten we een geneste voorwaarde voor “Anders”.
Als de eerste voorwaarde niet waar is, springt VBA naar “Anders” en test de voorwaarde, en als die voorwaarde niet waar is, gaat hij verder met de volgende.
Op deze manier hebben we in totaal vier voorwaarden om te testen.
Sub myMacro2() Dim myScore As Single: myScore = Range("A1").Value If myScore >= 80 Then MsgBox "Excellent" Else If myScore >= 60 And myScore < 80 Then MsgBox "Good" Else If myScore >= 40 And myScore < 60 Then MsgBox "Average" Else If myScore < 40 Then MsgBox "Poor" End If End If End If End If End Sub
Deze geneste IF-instructie test de score van cel A1 en geeft dienovereenkomstig een berichtvenster weer.
VBA genest IF met meerdere regels (IF)
U kunt ook twee verschillende IF’s gebruiken om beide resultaten uit te voeren (True en False).
In het bovenstaande voorbeeld moeten we, zoals u kunt zien, eerst één voorwaarde testen, en als die voorwaarde WAAR is, dan moet u nog een voorwaarde testen, en als die tweede voorwaarde WAAR is, krijgt u een berichtenvenster.
En als de hoofdvoorwaarde onwaar is, moet u een andere voorwaarde testen en krijgt u een berichtvenster als die voorwaarde waar is.
Sub myMacro3() If 1 + 1 = 2 Then If 2 - 1 = 1 Then MsgBox "Condition1 is TRUE." End If Else If 3 - 2 = 1 Then MsgBox "Condition2 is TRUE." End If End If End Sub