Hoe gebruik ik de select case-instructie in vba?
Belangrijkste punten
- Met SELECT CASE kunt u meerdere omstandigheden testen, vooral als u aan meer dan twee voorwaarden werkt.
- De code die u schrijft met SELECT CASE is veel gestructureerder dan standaard voorwaardelijke code.
- Het is gemakkelijker om dit te wijzigen als u een of meer waarden in de code moet aanpassen.
Wat is VBA Select Case
VBA SELECT CASE is een verklaring voor het testen van meerdere voorwaarden. In deze instructie kunt u één voorwaarde opgeven, vervolgens een code opgeven die moet worden uitgevoerd als die voorwaarde waar is, en vervolgens een tweede voorwaarde opgeven en een code opgeven die moet worden uitgevoerd als die voorwaarde waar is. Op deze manier kunt u meerdere voorwaarden en meerdere verklaringen opgeven.
De syntaxis voor het selecteren van de case
Hieronder vindt u de syntaxis die u moet volgen om een select case-statement te schrijven.
Select Case Test Expression Case (Condition to Test) Statement1 [Line of Code to Run if CASE 1 is TRUE] Case (Condition to Test) Statement1 [Line of Code to Run if CASE 2 is TRUE] Case Else Statement [Line of Code to Run if no CASE is TRUE] End Select
In SELECT CASE begint de syntaxis met het trefwoord “Select” en eindigt met “End Select”. Om de syntaxis ervan te begrijpen, moeten we deze in vier delen verdelen:
- In het EERSTE deel moet u de “testexpressie” specificeren waarop alle voorwaarden worden getest.
- Daarna moet u in het TWEEDE deel het te testen geval specificeren (dwz de te testen toestand).
- Nu moet je in het DERDE deel nog een geval schrijven waarin je moet testen of de voorwaarde in het tweede deel niet WAAR is.
- Aan het einde, in Deel VIER , moet u een resultaat specificeren dat zou moeten optreden wanneer beide bovenstaande gevallen niet WAAR zijn.
Een eenvoudig voorbeeld om een selecte casusverklaring te begrijpen
De syntaxis van SELECT CASE spreekt voor zich en is redelijk eenvoudig te volgen bij het schrijven van code. Maar laten we een voorbeeld nemen en het volledig begrijpen. Hieronder heb je een eenvoudige code om de waarde van cel A1 te testen.
Sub SelectCaseExample1() Select Case Range("A1").Value Case "Yes" MsgBox "It's a Yes." Case "No" MsgBox "It's a No" Case Else MsgBox "Can't Say" End Select End Sub
Laten we nu deze code met elke regel begrijpen:
- EERST moet u het trefwoord SELECT CASE en cel A1 gebruiken als uitdrukking om de voorwaarde te testen.
- TWEEDE heb je het trefwoord CASE en de voorwaarde (“YES”) om te controleren vanuit cel A1 en de code om een berichtvenster weer te geven met het bericht “Het is een ja” als de voorwaarde vermeld in case1 waar is.
- TEN DERDE heb je opnieuw het sleutelwoord hoofdlettergebruik en de voorwaarde (“Nee”) die je moet controleren vanuit cel A1 en de code om een berichtvenster weer te geven met het bericht “Het is nee” als de voorwaarde genoemd in geval twee waar is.
- VIERDE , je hebt het trefwoord CASE ELSE en een regel code om een berichtvenster weer te geven met het bericht “Can’t Say” als geen van beide gevallen waar is.
- FIFTH , je hebt het sleutelwoord END SELECT om de SELECT CASE-instructie te beëindigen.
Gerelateerd: VBA-BERICHTENBOX
Belangrijke punten
- Het kan meerdere voorwaarden testen en een regel code uitvoeren op basis van het resultaat.
- U kunt vergelijkingsoperatoren (=, >, <, <>, >=, <=) gebruiken bij het testen van een voorwaarde met behulp van het trefwoord Is.
- U kunt een komma gebruiken om meerdere voorwaarden in hetzelfde geval te testen.
- U kunt ook een reeks getallen gebruiken wanneer u een voorwaarde in één geval test.
- Wanneer aan een voorwaarde is voldaan, stopt VBA om de overige gevallen van de instructie te testen.
- U kunt aan het einde ook een case else-sectie toevoegen om een regel code uit te voeren als aan geen van de voorwaarden is voldaan.
- U kunt het gebruik van de CASE END-instructie overslaan.
Meer voorbeelden om te gebruiken Selecteer case
Het is tijd om SELECT CASE op verschillende manieren te gebruiken, en hier zijn enkele van de nuttige en essentiële voorbeelden die u kunt leren.
100 voorbeelden van Excel-macro’s
1. Selecteer de zaak met cijfers
Wanneer u VBA-code schrijft voor de SELECT CASE-instructie, kunt u operators gebruiken om waarden te vergelijken. In de onderstaande code heb je nu de operatoren >, < en = om de voorwaarden te testen.
Sub SelectCaseExample1() Select Case Range("A1").Value Case Is >= 45 MsgBox "Pass" Case Is < 45 MsgBox "Fail" End Select End Sub
- Het eerste geval van deze verklaring controleert of de waarde van cel A1 groter is dan of gelijk is aan 45 of niet en retourneert een berichtenvenster met het bericht “Pass”.
- En het tweede geval van de instructie controleert of de waarde van cel A1 kleiner is dan 45 en retourneert een berichtvenster met het bericht “Mislukt”.
2. Selecteer de zaak met een reeks cijfers
U kunt ook een reeks getallen gebruiken om de conditie te testen. In de onderstaande code heb je een voorwaarde met telkens een reeks getallen om te testen.
Sub SelectCaseExample2() Select Case Range(“A1”).Value Case 45 To 100 MsgBox “Pass” Case 0 To 44 MsgBox “Fail” Case Else MsgBox “Out of Range” End Select End Sub
- Het eerste geval van de instructie controleert het getal in cel A1 met behulp van het getalbereik 45 tot en met 100 en retourneert ‘Pass’ als de waarde onder dit bereik valt.
- De tweede instructie heeft een bereik van 0 tot 44 om te testen met de waarde in cel A1 en retourneert ‘Fail’ als de waarde onder dit bereik valt.
- De derde verklaring is case else geeft een berichtvenster weer met het bericht “Buiten bereik” als cases één en twee onwaar zijn.
3. Met behulp van de Colon-operator
Wanneer u code schrijft voor de SELECT CASE, kunt u de dubbelepuntoperatoren gebruiken om de hele case op één regel te schrijven.
In de onderstaande code begint de regel met de case, vervolgens de te testen voorwaarde, vervolgens een dubbele punt, en vervolgens is de verklaring die in dit geval moet worden uitgevoerd waar.
Sub SelectCaseExample3() Select Case Range(“A1”).Value Case 45 To 100: MsgBox “Pass” Case 0 To 44: MsgBox “Fail” Case Else: MsgBox “Out of Range” End Select End Sub
4. Gebruik Case selecteren met meerdere voorwaarden
Net zoals u een bereik voor een case instelt, kunt u ook meerdere waarden opgeven om de voorwaarde te testen. In de onderstaande code heeft elk geval drie cijfers om te testen.
Sub SelectCaseExample() Select Case Range("A1").Value Case 1, 3, 5 MsgBox "Yes" Case 2, 4, 6 MsgBox "No" Case Else MsgBox "Out of range" End Select End Sub
- Het eerste geval van deze code test de celwaarde als deze 1, 3 of 5 is en retourneert “Ja” in een berichtvenster.
- En het tweede geval van deze code test de waarde van cel A1 als deze 2, 4 of 6 is.
5. Select Case gebruiken in een aangepaste functie
U kunt de SELECT CASE ook gebruiken bij het schrijven van code voor een VBA-functie .
Function udfGrade(student_marks As Integer) Dim myGrade As String Select Case student_marks Case Is < 40: myGrade = “Bad” Case 41 To 50: myGrade = “Average” Case 51 To 60: myGrade = “Good” Case 61 To 80: myGrade = “Very Good” Case 81 To 100: myGrade = “Excellent” End Select udfGrade = myGrade End Function
In de bovenstaande functie zijn er vijf vakjes om de score van studenten in een cel te controleren. In alle vijf de gevallen wordt een reeks getallen gebruikt en wordt de waarde geretourneerd die in de instructie is gedefinieerd.
6. Gebruik Case selecteren uit geneste voorwaarden
U kunt ook een geneste voorwaardeverklaring maken. Wat ik probeer te zeggen is dat je code kunt schrijven om meerdere voorwaarden met het geselecteerde geval te testen.
Stel je voor dat je code wilt schrijven die voorwaarden kan testen op basis van de waarden van twee verschillende cellen.
Sub SelectCaseStatement() Select Case Range("A2") Case "Boy" Select Case Range("B2") Case "Commerce": MsgBox "Boy (Commerce)" Case "Science": MsgBox "Boy (Science)" End Select Case "Girl" Select Case Range("B2") Case "Commerce": MsgBox "Girl (Commerce)" Case "Science": MsgBox "Girl (Science)" End Select End Select End Sub
In de bovenstaande code heb je drie case select-instructies. Er is een hoofdinstructie die de waarde van cel A2 controleert of deze ‘Jongen’ of ‘Meisje’ is.
En dan worden, op basis van het resultaat, nog twee instructies uitgevoerd en wordt de waarde van cel B2 gecontroleerd of dit Handel of Wetenschap is.
KIES CASE versus ALS DAN ANDERS Verklaring
- Als u meerdere voorwaarden wilt testen, kunt u eenvoudig code schrijven met SELECT CASE in plaats van IF-THEN.
- Zelfs het bewerken en wijzigen van een SELECT CASE-instructie is eenvoudig in vergelijking met IF-THEN.