VBA-schakelkast - Hoe Switch Case Statement te gebruiken in Excel VBA?

Inhoudsopgave:

Anonim

Excel VBA- schakelkast

In VBA-switch gebruiken we, wanneer we een voorwaarde logisch moeten controleren of analyseren en de verschillende codes op basis daarvan moeten uitvoeren, de voorwaardelijke instructie IF-Else. Evenzo is er nog een instructie Switch Case die beter bekend staat als Select Case-instructie die de meerdere logische voorwaarden kan controleren of analyseren en op basis daarvan de coderegels kan uitvoeren. Wanneer u drie of meer logische voorwaarden hebt om te controleren, wordt aanbevolen dat u Select Case of Switch Case gebruikt in plaats van een conventionele IF-Else-instructie. Omdat het de VBA-code sneller en begrijpelijker maakt in plaats van geneste IF-Else-verklaringen in dergelijke gevallen.

Wissel van geval / selecteer geval

Switch Case of Select Case in VBA werkt op dezelfde regels als IF-Else-instructies. Het controleert de meerdere logische / voorwaardelijke expressies op verschillende waarden (cases). Zodra een van de gevallen overeenkomt met de voorwaarde (wordt waar voor de gegeven voorwaarde), voert het systeem die zaak uit en worden andere gevallen genegeerd om uit te voeren. In het geval dat er twee gevallen waar zijn voor de gegeven voorwaarde, wordt alleen de eerste uitgevoerd met de voorrangswet.

Syntaxis voor Switch Case / Select Case is als volgt:

Select Case
Case value_1
Code to Execute when Expression = value_1
Case value_2
Code to Execute when Expression = value_2
Case value_3
Code to Execute when Expression = value_3
.
.
.
Case value_n
Code to Execute when Expression = value_n
Case Else
Code to Execute when no case value meets the expression/logical test.
End Select

Waar,

Expressie: dit is een expressie waarvoor we wilden controleren of analyseren met behulp van verschillende hoofdwaarden.

waarde_1, waarde_2, waarde_3, … zijn de logische voorwaarden die moeten worden gecontroleerd voor de gegeven uitdrukking.

Hoe de Switch Case Statement in Excel VBA te gebruiken?

We zullen leren hoe de Switch Case-instructie in Excel te gebruiken met behulp van de VBA-code.

U kunt deze Excel-sjabloon voor de VBA-schakelkast hier downloaden - Excel-sjabloon voor de VBA-schakelkast

VBA-schakelkast - Voorbeeld # 1

We zullen controleren of het gegeven nummer minder dan 100 of meer dan 100 is. Volg hiervoor de onderstaande stappen:

Stap 1: Voeg een nieuwe module in Visual Basic Editor (VBE) in. Klik op het tabblad Invoegen > selecteer Module.

Stap 2: Definieer een nieuwe subprocedure binnen de ingevoegde module die uw macro kan bevatten.

Code:

 Sub switch_case_example1 () End Sub 

Stap 3: Definieer een nieuwe variabele met de naam usrInpt die de gebruikerswaarde kan bevatten. Maak gebruik van de VBA InputBox- functie om een ​​invoervak ​​te maken dat gebruikerswaarden via variabele usrInpt doorgeeft .

Code:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Voer uw waarde in") End Sub 

Stap 4: Gebruik de instructie Select Case en voer de waarde in die door de gebruiker is opgegeven via variabele usrInpt . Dit is de uitdrukking die we moeten controleren met logische voorwaarden.

Code:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Voer uw waarde in") Selecteer Case usrInpt End Sub 

Stap 5: Voer als volgt de eerste logische test in die moet worden gecontroleerd onder de instructie Case.

Code:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Voer uw waarde in") Selecteer Case usrInpt Case Is <100 End Sub 

Stap 6: Gebruik de MsgBox-functie om een ​​uitvoerbericht toe te voegen als Case Is <100 waar is.

Code:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Voer uw waarde in") Selecteer Case usrInpt Case Is <100 MsgBox "Het opgegeven aantal is minder dan 100" End Sub 


Stap 7: Nu moeten we een uitvoerbare instructie opgeven wanneer de waarde voor usrInpt groter is dan 100. Voeg een Case en MsgBox toe om dit te bereiken.

Code:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Voer uw waarde in") Selecteer Case usrInpt Case Is 100 MsgBox "Het opgegeven aantal is groter dan 100" End Sub 

Stap 8: Wat als de door de gebruiker opgegeven waarde exact de 100 is? Daar hebben we geen zaak aan toegevoegd. Laten we degene toevoegen die de gebruiker een bericht geeft dat de ingevoerde waarde 100 is.

Code:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Voer uw waarde in") Selecteer Case usrInpt Case Is 100 MsgBox "Het opgegeven aantal is groter dan 100" Case Is = 100 MsgBox "Het opgegeven nummer is 100" End Sub 

Stap 9: We moeten de Select Case-verklaring beëindigen. Gebruik End Select om de gemaakte lus te beëindigen.

Code:

 Sub switch_case_example1 () Dim usrInpt As Integer usrInpt = InputBox ("Voer uw waarde in") Selecteer Case usrInpt Case Is 100 MsgBox "Het opgegeven aantal is groter dan 100" Case Is = 100 MsgBox "Het opgegeven nummer is 100" End Selecteer End Sub 

Stap 10: Voer deze code nu uit door op de knop Run of F5 te drukken. Er verschijnt een nieuw pop-upvenster waarin wordt gevraagd of de waarde moet worden aangevinkt. Ik voer een waarde in als 110 en druk op de OK-knop in het invoervak. Omdat het nummer dat ik invoer groter is dan 100, verschijnt er een nieuw bericht op mijn scherm zodra ik op OK klik: "Het opgegeven aantal is groter dan 100".

VBA-schakelkast - voorbeeld # 2

Stel dat we het cijfer van studenten willen vastleggen op basis van hun cijfers. Zie de onderstaande stappen over hoe we dit kunnen bereiken.

Stap 1: Definieer een nieuwe subprocedure met de naam switch_case_example2 .

Code:

 Sub switch_case_example2 () End Sub 

Stap 2: Definieer twee nieuwe variabelen - markeer als geheel getal en cijfers als een tekenreeks met de Dim-instructie in de gemaakte subprocedure.

Code:

 Sub switch_case_example2 () Dimmerken als geheel getal Dimcijfers als tekenreeks einde Sub 

Stap 3: Gebruik de VBA InputBox-functie waarmee de gebruiker de waarde voor de variabele tekens kan invoeren.

Code:

 Sub switch_case_example2 () Dimmerken als geheel getal Dimcijfers als tekenreeksen = InputBox ("Voer de tekens in") End Sub 

Stap 4: Gebruik de opdracht Select Case en voer de variabele tekens in als een te controleren uitdrukking.

Code:

 Sub switch_case_example2 () Dimmerken als geheel getal Dimcijfers als tekenreeksen = InputBox ("Voer de tekens in") Selecteer hoofdletters Einde Sub 

Omdat we de cijfers aan studenten willen toekennen op basis van de cijfers die ze invoeren, moeten we eerst de cijfers definiëren.

Stap 5: gebruik de case-instructie om te controleren of de markeringen minder dan 35 zijn. Wijs in dat geval de waarde "F" toe aan variabele cijfers.

Code:

 Sub switch_case_example2 () Dim markeringen Als geheel getal Dim grades As String markeringen = InputBox ("Voer de markeringen in") Selecteer Hoofdletters Case Is <35 graden = "F" Einde Sub 

Stap 6: Als de markeringen tussen 35 en 45 liggen, wijs dan waarde als “D” toe aan variabele graden.

Code:

 Sub switch_case_example2 () Dim markeringen Als geheel getal Dim grades As String markeringen = InputBox ("Voer de markeringen in") Selecteer Case markeringen Case Is <35 graden = "F" Case 35 tot 45 graden = "D" End Sub 

Stap 7: Als de ingevoerde markeringen tussen 46 en 55 liggen, moet de waarde "C" worden toegewezen aan variabele graden.

Code:

 Sub switch_case_example2 () Dim markeringen Als geheel getal Dim grades As String markeringen = InputBox ("Voer de markeringen in") Selecteer Case markeringen Case Is <35 graden = "F" Case 35 tot 45 graden = "D" Case 46 tot 55 graden = "C" Einde Sub 

Stap 8: Wanneer de markeringen binnen bereik 56 tot 65 liggen, moet de waarde die is toegewezen aan variabele graden "B" zijn.

Code:

 Sub switch_case_example2 () Dim markeringen Als geheel getal Dim grades As String markeringen = InputBox ("Voer de markeringen in") Selecteer Case markeringen Case Is <35 graden = "F" Case 35 tot 45 graden = "D" Case 46 tot 55 graden = "C" Case 56 tot 65 graden = "B" End Sub 

Stap 9: Voor cijfers tussen 66 en 75 moet het cijfer "A" zijn.

Code:

 Sub switch_case_example2 () Dim markeringen Als geheel getal Dim grades As String markeringen = InputBox ("Voer de markeringen in") Selecteer Case markeringen Case Is <35 graden = "F" Case 35 tot 45 graden = "D" Case 46 tot 55 graden = "C" Case 56 tot 65 graden = "B" Case 66 tot 75 graden = "A" End Sub 

Stap 10: Als de ingevoerde markeringen meer dan 75 zijn, moet aan de variabele variabelen een waarde worden toegewezen als "A +"

Code:

 Sub switch_case_example2 () Dim tekens als geheel getal Dim cijfers als tekenreeksen = InputBox ("Voer de tekens in") Selecteer hoofdletters Case is 75 cijfers = "A +" End Sub 

Stap 11: Gebruik End Selecteer en sluit de Select Case-lus.

Code:

 Sub switch_case_example2 () Dim markeringen Als geheel getal Dim grades As String markeringen = InputBox ("Voer de markeringen in") Selecteer Case markeringen Case Is 75 graden = "A +" Einde Selecteer Einde Sub 

Stap 12: Nu moeten we controleren wat het cijfer is dat is gekoppeld aan de cijfers die een student heeft ingevoerd. Om dit te bereiken, gebruikt u de MsgBox- functie zodanig dat deze de behaalde cijfers in een berichtenvak aangeeft.

Code:

 Sub switch_case_example2 () Dimmerken als geheel getal Dimcijfers als tekenreeksen = InputBox ("Voer de markeringen in") Selecteer hoofdletters Case is 75 graden = "A +" Einde Selecteer MsgBox "Bereikte score is:" & cijfers Einde Sub 

Stap 13: Voer deze code uit door op de knop F5 of Uitvoeren te drukken en u ziet een VBA-invoervak ​​waarin om een ​​markwaarde wordt gevraagd. Ik voer de tekens in als 72 en druk op de OK-knop in het invoervak. Zodra ik op de OK-knop in het invoervak ​​druk, krijg ik een berichtvak met de cijfers die zijn gekoppeld aan de ingevoerde markeringen.

Dit is hoe we de Switch / Select Case-instructie in VBA kunnen gebruiken.

Dingen om te onthouden

  • Schakelkast is eigenlijk een synoniem voor Select Case-verklaring in VBA. Dit is zo genoemd omdat we met behulp van deze verklaring tegelijkertijd tussen de verschillende uitgangen kunnen schakelen.
  • Deze verklaring kan worden gebruikt als alternatief voor de IF-Else-lus wanneer we drie of meer voorwaarden hebben om te controleren.
  • Het is OK als u ELSE Case niet gebruikt in de Select Case-verklaring. In dat geval moet u er echter voor zorgen dat ten minste één voorwaarde gedurende de lus waar is.

Aanbevolen artikelen

Dit is een handleiding voor de VBA-schakelkast. Hier bespreken we het gebruik van de Switch Case Statement in Excel VBA, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA-collectie (voorbeelden)
  2. VBA IF-verklaringen | Excel-sjablonen
  3. Hoe de Excel VBA-sorteerfunctie te gebruiken?
  4. VBA While Loop (voorbeelden met Excel-sjabloon)
  5. VBA Environ