excel-vba
Villkorliga uttalanden
Sök…
If-uttalandet
If
kontrollsatsen tillåter att olika kod kan köras beroende på utvärderingen av ett villkorligt (booleskt) uttalande. Ett villkorligt uttalande är ett som utvärderar antingen True
eller False
, t.ex. x > 2
.
Det finns tre mönster som kan användas vid implementering av ett If
uttalande, som beskrivs nedan. Observera att en If
villkorlig utvärdering alltid följs av en Then
.
1. Utvärdera ett If
villkorligt uttalande och göra något om det är True
En rad If
uttalande
Detta är det kortaste sättet att använda en If
och det är användbart när bara ett uttalande behöver göras vid en True
utvärdering. När du använder denna syntax måste hela koden vara på en enda rad. Inkludera inte ett End If
i slutet av raden.
If [Some condition is True] Then [Do something]
If
block
Om flera kodrader behöver utföras vid en True
utvärdering kan ett If
block användas.
If [Some condition is True] Then
[Do some things]
End If
Observera att om ett flerlinje If
block används krävs motsvarande End If
.
2. Utvärdera en villkorad If
uttalande, göra en sak om det är True
och att göra något annat om det är False
En rad If
, Else
uttalande
Detta kan användas om ett uttalande ska genomföras vid en True
utvärdering och ett annat uttalande ska genomföras vid en False
utvärdering. Var försiktig med att använda denna syntax, eftersom det ofta är mindre tydligt för läsarna att det finns ett Else
uttalande. När du använder denna syntax måste hela koden vara på en enda rad. Inkludera inte ett End If
i slutet av raden.
If [Some condition is True] Then [Do something] Else [Do something else]
If
, Else
blockera
Använd ett If
, Else
block för att lägga till tydlighet i din kod, eller om flera kodrader behöver utföras under antingen en True
eller False
utvärdering.
If [Some condition is True] Then
[Do some things]
Else
[Do some other things]
End If
Observera att om ett flerlinje If
block används krävs motsvarande End If
.
3. Utvärdera många villkorliga uttalanden, när alla föregående uttalanden är False
, och gör något annorlunda för var och en
Detta mönster är den mest allmänna användningen av If
och skulle användas när det finns många icke-överlappande tillstånd som kräver olika behandling. Till skillnad från de två första mönstren kräver detta fall användning av ett If
block, även om endast en kodrad kommer att utföras för varje tillstånd.
If
, ElseIf
, ...
, Else
block
I stället för att behöva skapa många If
blockerande under varandra, kan en ElseIf
användas för att utvärdera ett extra villkor. ElseIf
utvärderas endast om något föregående If
utvärderingen är False
.
If [Some condition is True] Then
[Do some thing(s)]
ElseIf [Some other condition is True] Then
[Do some different thing(s)]
Else 'Everything above has evaluated to False
[Do some other thing(s)]
End If
Så många ElseIf
kontrollförklaringar kan inkluderas mellan ett If
och ett End If
behövs. Ett Else
kontrollförklaring krävs inte när du använder ElseIf
(även om det rekommenderas), men om det ingår måste det vara det slutliga kontrolluttalet före End If
.