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 MalVBA-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 -
- Bruk av VBA InStr-funksjon
- Excel SWITCH-funksjon
- VBA tilfeldig nummer
- CONCATENATE-funksjon i Excel