VBA-bryter - Hvordan bruke brytererklæring i Excel VBA?

Innholdsfortegnelse:

Anonim

Excel VBA-brytererklæring

Bryter i VBA ligner på valgt saksfunksjon. Den eneste forskjellen mellom disse er at vi må skrive mye mindre koder i en bryter i forhold til å velge sak. Vi kan skrive en brytererklæring i en underprosess, eller vi kan skrive den som en brukerdefinert funksjon i VBA.

Switch in VBA evaluerer et uttrykk og gir output basert på betingelsene for det uttrykket. I utvalgte saksuttalelser definerte vi saker om at hvis vi har en sak skal resultatet være b og så videre. Dette krevde å skrive mange koder for utvalgte saksuttalelser, men i Switch kan vi slå sammen alle betingelsene og uttrykkene i en uttalelse i stedet for å ha flere saksuttalelser.

Syntax of Switch Statement

Bytte beregner det første uttrykket, og hvis verdien er sann, returnerer den verdien for uttrykket, og hvis verdien for uttrykk 1 ikke er sann, fortsetter den for samme beregning for uttrykk 2, og hvis resultatet er sant, vises verdi 2, men hvis uttrykket returneres er usant, bytter går videre til et annet uttrykk.

Så hva skjer hvis ingenting av uttrykket er sant og alle returneres som usanne, vi får kjøretidfeil i slike tilfeller med mindre vi har en forebyggende feilhåndtering for et slikt scenario.

Hvordan bruke brytererklæring i Excel VBA?

Nedenfor er de forskjellige eksemplene du kan bruke VBA Switch Statement i Excel.

Du kan laste ned denne VBA Switch Excel Mal her - VBA Switch Excel Mal

VBA-bryter - eksempel # 1

La oss starte med det grunnleggende eksemplet for å få en ide om VBA-brytererklæringen. Vi vil ta innspill fra brukeren og basert på den inngangen vil vi definere utgangen. Vi vil ta innspill fra nummer 1 til 5 og basert på innspillet vil vi ha forhåndsdefinerte resultater, men hvis brukeren legger inn noe annet nummer enn vårt område, må vi håndtere den feilen.

Følg trinnene nedenfor for å bruke Switch Statement i Excel VBA:

Trinn 1: Fra den visuelle grunnleggende fanen angir du VB-editoren fra utviklerens fane.

Trinn 2: Sett inn en ny modul i VB Editor-vinduet fra kategorien Sett inn.

Trinn 3: Erklær en ny underprosess i den nye modulen som nettopp ble opprettet.

Kode:

 Undereksempel () Slutt Sub 

Trinn 4: Angi to variabler A og B, en som heltall og en annen som en streng.

Kode:

 Underprøve () Dim A As Heltall Dim B Som String End Sub 

Trinn 5: I variabel A lagres verdien av brukeren ved å bruke inngangsfeltfunksjonen.

Kode:

 Underprøve () Dim A som heltall Dim B som streng A = InputBox ("Angi en verdi", "verdien skal være mellom 1 og 5") Slutt sub 

Trinn 6: Nå i variabel B vil vi bruke en VBA-brytererklæring for å ha evaluert resultatet som per inngang levert av brukeren.

Kode:

 Underprøve () Dim A som heltall Dim B som streng A = InputBox ("Angi en verdi", "verdien skal være mellom 1 og 5") B = Bryter (A = 1, "En", A = 2, "To ", A = 3, " Tre ", A = 4, " Fire ", A = 5, " Fem ") End Sub 

Trinn 5: Vis verdien som er lagret i B ved hjelp av MSGBOX-funksjonen.

Kode:

 Underprøve () Dim A som heltall Dim B som streng A = InputBox ("Angi en verdi", "verdien skal være mellom 1 og 5") B = Bryter (A = 1, "En", A = 2, "To ", A = 3, " Tre ", A = 4, " Fire ", A = 5, " Fem ") MsgBox B End Sub 

Trinn 6: Kjør koden ovenfor ved å trykke på F5-tasten og den ber oss legge inn et heltall. Oppgi nummer 3 og trykk på ok for å se resultatet.

Trinn 7: La oss kjøre koden på nytt og angi nummeret 6 og se resultatet vi får.

Vi får kjøretidfeil, da det ikke er noen uttrykk for å definere 6. i bryteruttalelsen vår. Så i slike scenarier må vi ha forebyggende feilhåndtering.

Trinn 8: For å overvinne denne kjøretidsfeilen, erklærer en annen variabel Var som Variant.

Kode:

 Underprøve () Dim A Som heltall Dim B Som streng Dim var Som variant A = InputBox ("Angi en verdi", "verdien skal være mellom 1 og 5") B = Bryter (A = 1, "En", A = 2, "To", A = 3, "Tre", A = 4, "Fire", A = 5, "Fem") MsgBox B End Sub 

Trinn 9: Før du bytter uttalelsen, bruker du on-error goto-setningen slik at hvis koden finner en feil, vet den hvor den skal gå.

Kode:

 Underprøve () Dim A Som heltall Dim B Som streng Dim var Som variant A = InputBox ("Angi en verdi", "verdien skal være mellom 1 og 5") Ved feil GoTo var B = Bryter (A = 1, "En ", A = 2, " To ", A = 3, " Tre ", A = 4, " Fire ", A = 5, " Fem ") MsgBox B End Sub 

Trinn 10: Definer nå hva som vil skje hvis koden får en feil,

Kode:

 Underprøve () Dim A Som heltall Dim B Som streng Dim var Som variant A = InputBox ("Angi en verdi", "verdien skal være mellom 1 og 5") Ved feil GoTo var B = Bryter (A = 1, "En ", A = 2, " To ", A = 3, " Tre ", A = 4, " Fire ", A = 5, " Fem ") MsgBox B var: MsgBox" Du har lagt inn ugyldig nummer "Fortsett neste slutt Sub 

Trinn 11: La oss nå kjøre koden igjen ved å trykke på F5 eller klikke på Spill av-knappen og inndataverdien 6 og deretter Trykk ok for å se det endelige resultatet i tilfelle svitsjers uttalelse møter en feil.

VBA-bryter - eksempel # 2

For dette eksempelet har jeg data i ark 1 som inneholder navnet på noen filmer og deres varighet i minutter. Basert på lengden jeg vil definere er filmen kort eller super lang. Ta en titt på dataene nedenfor.

Følg trinnene nedenfor for å bruke Switch Statement i Excel VBA:

Trinn 1: La oss starte i den samme modulen og begynne med å definere en annen underprosess som følger.

 Sub Sample1 () Slutt Sub 

Trinn 2: Forklar to variabler A og B, en som heltall en annen som streng som følger,

 Underprøve1 () Dim A As heltall Dim B Som streng slutt Sub 

Trinn 3: Nå i variabel A, la oss lagre verdien av filmlengden for noen av filmene.

 Underprøve1 () Dim A Som heltal Dim B Som streng A = Område ("A3"). Offset (0, 1) .Value End Sub 

Trinn 4: Nå i variabel B, la oss bruke en VBA-brytererklæring for å definere hva scenariet vil være for hver filmlengde.

 Underprøve1 () Dim A Som heltall Dim B Som streng A = rekkevidde ("A3"). Forskyvning (0, 1). Verdi B = Bryter (A <= 70, "For kort", A <= 100, "Kort ", A <= 120, " Long ", A <= 150, " Too Long ") End Sub 

Trinn 5: Hva om verdien er større enn 180, hvis vi har en annen feilbehandler her, eller vi bare kan skrive et annet uttrykk som True, Value. Ettersom alle de andre verdiene vil bli returnert, vil den falske koden utføre dette uttrykket.

 Underprøve1 () Dim A Som heltall Dim B Som streng A = rekkevidde ("A3"). Forskyvning (0, 1). Verdi B = Bryter (A <= 70, "For kort", A <= 100, "Kort ", A <= 120, " Lang ", A <= 150, " For lang ", sann, " Kjedelig ") End Sub 

Trinn 6: Vis verdien av B ved hjelp av msgbox-funksjonen.

 Underprøve1 () Dim A Som heltall Dim B Som streng A = rekkevidde ("A3"). Forskyvning (0, 1). Verdi B = Bryter (A <= 70, "For kort", A <= 100, "Kort ", A <= 120, " Lang ", A <= 150, " For lang ", sann, " Kjedelig ") MsgBox B End Sub 

Trinn 7: Kjør koden ved å trykke på F5-tasten eller ved å klikke på Spill-knappen og se utdataene.

A3-cellen har film 2 hvis lengde var 100, så produksjonen er så kort.

VBA-bryter - eksempel # 3

La bruk switch statement for å lage en brukerdefinert funksjon for eksemplet ovenfor, slik at vi kan bruke den i arbeidsarket når det er nødvendig.

Følg trinnene nedenfor for å bruke Switch Statement i Excel VBA:

Trinn 1: I samme modul erklærer du en funksjon som kalles filmlengde.

 Funksjon Filmlengde (lengde som heltall) som streng sluttfunksjon 

Trinn 2: Bruk nå en VBA Switch-setning for å definere parametrene basert på lengden som følger,

 Funksjon Filmlengde (lengde som heltall) som streng Filmlengde = bryter (lengde <= 70, "for kort", lengde <= 100, "kort", lengde <= 120, "lang", lengde <= 150, "for lang", Sant, "Kjedelig") Sluttfunksjon 

Trinn 3: La oss nå gå inn i arbeidsarket der vi hadde dataene våre, type = FilmLength (

Trinn 4: Vi kan se at vår funksjon der gir et argument som verdier i celle B2.

Trinn 5: Etter å ha brukt formelen, trykk enter.

Trinn 6: Dra nå funksjonen til celle C10 og se resultatet.

Ting å huske

  • Byttefunksjon evaluerer uttrykket i det. Hvis det første uttrykket blir evaluert sant, vurderer det ikke de andre uttrykkene.
  • Hvis ikke noe av uttrykket er sant, returnerer det en kjøretidsfeil.
  • Vi må ha en feilbehandler i bytteerklæring eller uttrykk slik at hvis hvert uttrykk returneres usant, ikke får vi en kjøretidsfeil.
  • En bryter ligner på valg av sakstilstand.

Anbefalte artikler

Dette er en guide til VBA Switch. Her diskuterer du hvordan du bruker switch statement i Excel VBA sammen med noen praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Bruk av VBA InStr-funksjon
  2. Excel SWITCH-funksjon
  3. VBA tilfeldig nummer
  4. CONCATENATE-funksjon i Excel