VBA switch sag - Hvordan bruges switch case statement i Excel VBA?

Indholdsfortegnelse:

Anonim

Excel VBA switch sag

Når vi logisk skal kontrollere eller analysere en tilstand og udføre de forskellige linjer med koder, der er baseret på den samme, bruger vi i VBA Switch Case, IF-Else betinget erklæring. Tilsvarende er der endnu en erklæring, der skifter sag, der er mere kendt som Select Case-sætning, der kan kontrollere eller analysere de flere logiske forhold og udføre kodelinierne baseret på disse. Når du har tre eller flere logiske forhold til at kontrollere, anbefales det, at du bruger Select Case eller Switch Case i stedet for en konventionel IF-Else-erklæring. Fordi det gør VBA-koden hurtigere og mere forståelig i stedet for indlejrede IF-Else-udsagn i sådanne tilfælde.

Skift sag / Vælg sag

Switch Case eller Select Case i VBA fungerer på lignende linjer som i IF-Else-udsagn. Det kontrollerer de flere logiske / betingede udtryk i forhold til forskellige værdier (tilfælde). Så snart en af ​​sagerne matcher betingelsen (bliver sand for den givne betingelse), udfører systemet den sag og hviler andre sager ignoreres for at henrette. I tilfælde af at der er to tilfælde, der stemmer for den givne betingelse, vil kun den første blive henrettet med forrangsloven.

Syntaks for switch case / Select case er som nedenfor:

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

Hvor,

Udtryk: Dette er et udtryk, som vi ønskede at tjekke eller analysere ved hjælp af forskellige sagsværdier.

value_1, value_2, value_3, … er de logiske betingelser, der er nødvendige for at kontrolleres for det givne udtryk.

Hvordan bruges switch case statement i Excel VBA?

Vi lærer, hvordan man anvender Switch Case-erklæringen i Excel ved hjælp af VBA-koden.

Du kan downloade denne VBA Switch Case Excel-skabelon her - VBA Switch Case Excel Template

VBA switch sag - eksempel # 1

Vi kontrollerer, om det givne antal er mindre end 100 eller mere end 100. Følg nedenstående trin:

Trin 1: Indsæt et nyt modul i Visual Basic Editor (VBE). Klik på fanen Indsæt > vælg Modul.

Trin 2: Definer en ny underprocedure i det indsatte modul, der kan indeholde din makro.

Kode:

 Sub switch_case_example1 () End Sub 

Trin 3: Definer en ny variabel ved navn usrInpt, som kan indeholde brugerværdien. Brug VBA InputBox- funktionen til at oprette en inputboks, der tager brugerværdier gennem variabel usrInpt .

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltal usrInpt = InputBox ("Indtast din værdi") End Sub 

Trin 4: Brug Select Case- sætningen og angiv den værdi, som brugeren leverer via variablen usrInpt . Dette er det udtryk, vi har brug for at kontrollere med logiske forhold.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltal usrInpt = InputBox ("Indtast venligst din værdi") Vælg Case usrInpt End Sub 

Trin 5: Indtast den første logiske test, der skal kontrolleres under case-erklæringen som følger.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltal usrInpt = InputBox ("Indtast venligst din værdi") Vælg Case usrInpt Case Is <100 End Sub 

Trin 6: Brug MsgBox-funktionen til at tilføje en outputmeddelelse, hvis Case Is <100 er sandt.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltal usrInpt = InputBox ("Angiv venligst din værdi") Vælg Case usrInpt Case Is <100 MsgBox "Det angivne nummer er mindre end 100" End Sub 


Trin 7: Nu skal vi levere en eksekverbar erklæring, når værdien for usrInpt er større end 100. Tilføj en sag og MsgBox for at opnå dette.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltal usrInpt = InputBox ("Indtast venligst din værdi") Vælg Case usrInpt Case Is 100 MsgBox "Det angivne antal er større end 100" End Sub 

Trin 8: Hvad hvis den værdi, som brugeren leverer, er nøjagtigt 100? Vi har ikke tilføjet nogen sag om det. Lad os tilføje den, der giver brugeren en besked om, at den værdi, han indtastede, er 100.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltal usrInpt = InputBox ("Indtast venligst din værdi") Vælg Case usrInpt Case Is 100 MsgBox "Det angivne nummer er større end 100" Case Is = 100 MsgBox "Det angivne nummer er 100" End Sub 

Trin 9: Vi er nødt til at afslutte Select Case-erklæringen. Brug slut vælg for at afslutte den oprettede sløjfe.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltal usrInpt = InputBox ("Angiv venligst din værdi") Vælg Case usrInpt Case Is 100 MsgBox "Det angivne nummer er større end 100" Case Is = 100 MsgBox "Det angivne nummer er 100" End Select End Sub 

Trin 10: Kør nu denne kode ved at trykke på knappen Kør eller F5. En ny popup-boks vises med anmodning om, at værdien skal kontrolleres. Jeg vil indtaste en værdi som 110 og trykke på OK-knappen i inputboksen. Da antallet, jeg indtaster, er større end 100, så snart jeg klikker på OK, vises en ny meddelelse på min skærm, der siger: ”Det angivne antal er større end 100”.

VBA switch case - eksempel # 2

Antag, at vi ønsker at fange elevernes karakter baseret på deres karakterer. Se nedenstående trin om, hvordan vi kan opnå dette.

Trin 1: Definer en ny underprocedure med navnet switch_case_example2 .

Kode:

 Sub switch_case_example2 () End Sub 

Trin 2: Definer to nye variabler - markerer som heltal og karakterer som en streng ved hjælp af Dim-sætning i den oprettede delprocedure.

Kode:

 Sub switch_case_example2 () Dim-mærker Som heltal Dim-karakterer som streng End Sub 

Trin 3: Brug funktionen VBA InputBox, gennem hvilken brugeren kan indtaste værdien for variabelmærkerne.

Kode:

 Sub switch_case_example2 () Dim-mærker Som heltal Dim-karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") End Sub 

Trin 4: Brug Select Case- sætningen og angiv variabelmærkerne som et udtryk, der skal kontrolleres.

Kode:

 Sub switch_case_example2 () Dimmerker som heltal Dim karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Sagmærker End Sub 

Da vi ønsker at tildele karaktererne til studerende baseret på de karakterer, de indtaster, er vi nødt til at definere karaktererne først.

Trin 5: Brug sagsangivelsen til at kontrollere, om mærkerne er mindre end 35. I så fald skal du tildele værdien som "F" til variabel karakter.

Kode:

 Sub switch_case_example2 () Dimmerker som heltal Dim karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Sagmærker Sag Er <35 grade = "F" End Sub 

Trin 6: Hvis mærkerne er mellem 35 og 45, skal du tildele værdien som "D" til variabel karakter.

Kode:

 Sub switch_case_example2 () Dim-mærker Som heltal Dim-karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Case-mærker Case Is <35 grade = "F" Case 35 Til 45 grade = "D" End Sub 

Trin 7: Hvis de indtastede mærker er mellem 46 til 55, skal værdien "C" tildeles variabler.

Kode:

 Sub switch_case_example2 () Dimmerker som heltal Dim karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Sagmærker Sag Er <35 karakterer = "F" Sag 35 til 45 karakterer = "D" Sag 46 til 55 kvaliteter = "C" End Sub 

Trin 8: Når mærkerne er i området 56 til 65, skal den værdi, der er tildelt til variable kvaliteter, være ”B”.

Kode:

 Sub switch_case_example2 () Dimmerker som heltal Dim karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Sagmærker Sag Er <35 karakterer = "F" Sag 35 til 45 karakterer = "D" Sag 46 til 55 kvaliteter = "C" sag 56 til 65 karakterer = "B" slut sub 

Trin 9: For karakterer mellem 66 og 75 skal karakteren være “A”.

Kode:

 Sub switch_case_example2 () Dimmerker som heltal Dim karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Sagmærker Sag Er <35 karakterer = "F" Sag 35 til 45 karakterer = "D" Sag 46 til 55 kvaliteter = "C" sag 56 til 65 karakterer = "B" sag 66 til 75 kvaliteter = "A" slut sub 

Trin 10: Hvis de indtastede varemærker er mere end 75, skal karaktervariablen tildeles en værdi som "A +"

Kode:

 Sub switch_case_example2 () Dimmerker som heltal Dim karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Sagmærker Sag Er 75 karakterer = "A +" End Sub 

Trin 11: Brug Slut Vælg luk Select Case loop.

Kode:

 Sub switch_case_example2 () Dimmerker som heltal Dim karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Sagmærker Sag Er 75 karakterer = "A +" Slut Vælg Slut Sub 

Trin 12: Nu skal vi kontrollere, hvad der er karakteren, der er knyttet til de karakterer, en studerende har indtastet. For at opnå dette skal du bruge MsgBox- funktionen på en sådan måde, at den angiver de opnåede karakterer i en meddelelsesboks.

Kode:

 Sub switch_case_example2 () Dim-mærker Som heltal Dim-karakterer som strengmærker = InputBox ("Indtast venligst mærkerne") Vælg Case-mærker Case Er 75 grade = "A +" End Select MsgBox "Opnået karakter er:" & grade End Sub 

Trin 13: Kør denne kode ved at trykke på F5 eller Run-knappen, og du kan se en VBA-indtastningsboks, der beder om en mærkeværdi. Jeg vil indtaste mærkerne som 72 og trykke på OK-knappen, der findes i inputboksen. Så snart jeg trykker på OK-knappen inde i indtastningsfeltet, får jeg en meddelelsesboks, der angiver karaktererne, der er knyttet til de indtastede mærker.

Sådan kan vi bruge Switch / Select Case-erklæringen inde i VBA.

Ting at huske

  • Switch case er faktisk et synonym for Select Case-erklæring i VBA. Det er blevet kaldt det, fordi vi ved hjælp af denne erklæring kan skifte mellem de forskellige output på samme tid.
  • Denne erklæring kan bruges som et alternativ til IF-Else-løkken, når vi har tre eller flere betingelser til at kontrollere.
  • Det er OK, hvis du ikke bruger ELSE-sag i Select Case-erklæring. I dette tilfælde skal du dog sørge for, at mindst en betingelse er sand i hele løkken.

Anbefalede artikler

Dette er en guide til VBA Switch Case. Her drøfter vi Sådan bruges switch case statement i Excel VBA sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. VBA-samling (eksempler)
  2. VBA IF-erklæringer | Excel-skabeloner
  3. Sådan bruges Excel VBA sorteringsfunktion?
  4. VBA While Loop (eksempler med Excel-skabelon)
  5. VBA-miljø