VBA bryterveske - Hvordan bruke switch case statement i Excel VBA?

Innholdsfortegnelse:

Anonim

Excel VBA bryterveske

Når vi logisk trenger å kontrollere eller analysere en tilstand og utføre de forskjellige kodelinjene basert på den samme, bruker vi i VBA Switch Case, IF-Else betinget uttalelse. Tilsvarende er det enda en uttalelse Bytt sak som er mer kjent som Select Case-setning som kan sjekke eller analysere de flere logiske forholdene og utføre kodelinjene basert på disse. Når du har tre eller flere logiske forhold å sjekke, anbefales det at du bruker Select Case eller Switch Case i stedet for en konvensjonell IF-Else-uttalelse. Fordi den gjør VBA-koden raskere og mer forståelig i stedet for nestede IF-Else-uttalelser i slike tilfeller.

Bytt sak / Velg sak

Switch Case eller Select Case i VBA fungerer på lignende linjer som i IF-Else-uttalelser. Den sjekker flere logiske / betingede uttrykk mot forskjellige verdier (tilfeller). Så snart noen av sakene samsvarer med betingelsen (blir gjeldende for den gitte betingelsen), kjører systemet den saken og hviler andre saker blir ignorert for å henrette. I tilfelle er det to tilfeller som stemmer for den gitte betingelsen, bare den første vil bli 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,

Uttrykk: Dette er et uttrykk som vi ønsket å sjekke eller analysere ved bruk av forskjellige saksverdier.

verdi_1, verdi_2, verdi_3, … er de logiske forholdene som trengs for å sjekkes for det gitte uttrykket.

Hvordan bruke switch case statement i Excel VBA?

Vi lærer hvordan du bruker Switch Case-setningen i Excel ved å bruke VBA-koden.

Du kan laste ned denne VBA Switch Case Excel Template her - VBA Switch Case Excel Template

VBA Switch Case - Eksempel nr. 1

Vi vil sjekke om det gitte antallet er mindre enn 100 eller mer enn 100. Følg trinnene nedenfor:

Trinn 1: Sett inn en ny modul i Visual Basic Editor (VBE). Klikk på Sett inn fanen> velg Modul.

Trinn 2: Definer en ny delprosess i den innsatte modulen som kan inneholde makroen.

Kode:

 Sub switch_case_example1 () Slutt Sub 

Trinn 3: Definer en ny variabel som heter usrInpt som kan inneholde brukerverdien. Benytt deg av VBA InputBox- funksjonen for å lage en inndataboks som tar brukerverdier gjennom variabel usrInpt .

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltall usrInpt = InputBox ("Vennligst skriv inn verdien") Slutt Sub 

Trinn 4: Bruk Select Case- setningen og oppgi verdien levert av brukeren gjennom variabelen usrInpt . Dette er uttrykket vi trenger å sjekke med logiske forhold.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltall usrInpt = InputBox ("Vennligst skriv inn verdien") Velg Case usrInpt End Sub 

Trinn 5: Legg inn den første logiske testen som skal sjekkes under sakens uttalelse som følger.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltall usrInpt = InputBox ("Vennligst skriv inn verdien") Velg Case usrInpt Case Is <100 End Sub 

Trinn 6: Bruk MsgBox-funksjonen for å legge til en utdatamelding hvis Case Is <100 er sant.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltall usrInpt = InputBox ("Vennligst skriv inn verdien") Velg Case usrInpt Case Is <100 MsgBox "Det oppgitte tallet er mindre enn 100" End Sub 


Trinn 7: Nå må vi gi et kjørbart utsagn når verdien for usrInpt er større enn 100. Legg til en sak og MsgBox for å oppnå dette.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltall usrInpt = InputBox ("Vennligst skriv inn verdien") Velg Case usrInpt Case Is 100 MsgBox "Det oppgitte tallet er større enn 100" End Sub 

Trinn 8: Hva hvis verdien som oppgis av brukeren er nøyaktig 100? Vi har ingen tilfelle lagt til for det. La oss legge til den som gir brukeren en melding om at verdien han skrev inn er 100.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltall usrInpt = InputBox ("Vennligst skriv inn verdien") Velg Case usrInpt Case Is 100 MsgBox "Det oppgitte tallet er større enn 100" Case Is = 100 MsgBox "Det oppgitte tallet er 100" End Sub 

Trinn 9: Vi må avslutte Select Case-uttalelsen. Bruk Slutt Velg for å avslutte den opprettede sløyfen.

Kode:

 Sub switch_case_example1 () Dim usrInpt Som heltall usrInpt = InputBox ("Vennligst skriv inn verdien") Velg Case usrInpt Case Is 100 MsgBox "Det oppgitte tallet er større enn 100" Case Is = 100 MsgBox "Det oppgitte tallet er 100" End Select End Under 

Trinn 10: Nå, kjør denne koden ved å trykke på Kjør-knappen eller F5. En ny popup-boks vises der du ber om verdien for å bli sjekket. Jeg vil angi en verdi som 110 og trykke på OK-knappen på inntastingsboksen. Siden antallet jeg oppgir er større enn 100, så snart jeg klikker på OK, vises en ny melding på skjermen min som sier: "Det oppgitte antallet er større enn 100".

VBA Switch Case - Eksempel # 2

Anta at vi ønsker å fange karakteren til elevene basert på karakterene deres. Se trinnene nedenfor for hvordan vi kan oppnå dette.

Trinn 1: Definer en ny delprosedyre som heter switch_case_example2 .

Kode:

 Sub switch_case_example2 () Slutt Sub 

Trinn 2: Definer to nye variabler - merker som heltall og karakterer som en streng ved å bruke Dim-setningen i den underprosedyren som er opprettet.

Kode:

 Sub switch_case_example2 () Dimmerker Som heltall Dim karakterer Som streng slutt Sub 

Trinn 3: Bruk VBA InputBox-funksjonen som brukeren kan legge inn verdien for variabelmerkene gjennom.

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer som strengmerker = InputBox ("Vennligst skriv inn merkene") Slutt Sub 

Trinn 4: Bruk Select Case- setningen og oppgi variabelmerkene som et uttrykk som skal sjekkes.

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn End Sub 

Siden vi ønsker å tildele karakterene til elevene basert på karakterene de legger inn, må vi definere karakterene først.

Trinn 5: Bruk saksuttalingen for å sjekke om merkene er mindre enn 35. I så fall tildeler du verdien som "F" til variable karakterer.

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer Som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn Sag Er <35 karakterer = "F" Slutt Sub 

Trinn 6: Hvis merkene er mellom 35 og 45, tildeler du verdien som "D" til variable karakterer.

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn Sag Er <35 karakterer = "F" Sak 35 Til 45 karakterer = "D" Slutt Sub 

Trinn 7: Hvis merkene som er lagt inn er mellom 46 til 55, bør verdien "C" tildeles variabelt karakter.

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn Sak Er <35 karakterer = "F" Sak 35 til 45 karakterer = "D" Sak 46 til 55 karakterer = "C" End Sub 

Trinn 8: Når merkene er i området 56 til 65, bør verdien som er tilordnet til variabel karakterer være "B".

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn Sak Er <35 karakterer = "F" Sak 35 til 45 karakterer = "D" Sak 46 til 55 karakterer = "C" Sak 56 til 65 karakterer = "B" Slutt sub 

Trinn 9: For karakterer mellom 66 og 75, skal karakteren være “A”.

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn Sak Er <35 karakterer = "F" Sak 35 til 45 karakterer = "D" Sak 46 til 55 karakterer = "C" Sak 56 til 65 karakterer = "B" Sak 66 til 75 karakterer = "A" Slutt sub 

Trinn 10: Hvis merkene som er lagt inn er mer enn 75, skal karaktervariabelen tilordnes en verdi som "A +"

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn Sak Er 75 karakterer = "A +" Slutt Sub 

Trinn 11: Bruk Slutt Velg lukk Select Case loop.

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn Sak Er 75 karakterer = "A +" Slutt Velg Slutt Sub 

Trinn 12: Nå må vi sjekke hva karakteren er knyttet til karakterene en student har gitt. For å oppnå det, bruk MsgBox- funksjonen på en slik måte at den angir oppnådde karakterer i en meldingsboks.

Kode:

 Sub switch_case_example2 () Dimmerker som heltall Dim karakterer Som strengmerker = InputBox ("Vennligst skriv inn merkene") Velg Sakstegn Sak Er 75 karakterer = "A +" Slutt Velg MsgBox "Karakter oppnådd er:" & karakterer Slutt Sub 

Trinn 13: Kjør denne koden ved å trykke på F5 eller Run-knappen, og du kan se en VBA-inntastingsboks som ber om en merkeverdi. Jeg vil legge inn merkene som 72 og trykke på OK-knappen som er til stede i innmatingsboksen. Så snart jeg trykker på OK-knappen inne i innmatingsboksen, vil jeg få en meldingskasse som indikerer karakterene knyttet til merkene som er lagt inn.

Slik kan vi bruke Switch / Select Case-setningen i VBA.

Ting å huske

  • Switch case er faktisk et synonym for Select Case-uttalelse i VBA. Det har blitt kalt det fordi vi ved hjelp av denne uttalelsen kan veksle mellom de forskjellige utgangene samtidig.
  • Denne uttalelsen kan brukes som et alternativ til IF-Else-løkken når vi har tre eller flere betingelser å sjekke.
  • Det er OK hvis du ikke bruker ELSE-sak i Select Case-setningen. Imidlertid må du i så fall sørge for at minst en betingelse er sann i hele løkken.

Anbefalte artikler

Dette er en guide til VBA Switch Case. Her diskuterer vi Hvordan bruke Switch Case Statement i Excel VBA sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. VBA-samling (eksempler)
  2. VBA IF-uttalelser | Excel-maler
  3. Hvordan bruke Excel VBA sorteringsfunksjon?
  4. VBA While Loop (eksempler med Excel-mal)
  5. VBA-miljø