Erklæring om Excel VBA-switch
Skift i VBA svarer til den valgte sagfunktion. Den eneste forskel mellem dem er, at vi er nødt til at skrive meget mindre koder i en switch i sammenligning med at vælge sag. Vi kan skrive en switch-erklæring inde i en underprocedure, eller vi kan skrive den som en brugerdefineret funktion i VBA.
Skift i VBA evaluerer et udtryk og giver output baseret på betingelserne for dette udtryk. I udvalgte sagsangivelser definerede vi sager, at hvis vi har en sag, skal resultatet være b og så videre. Dette krævede for at skrive en masse koder til udvalgt sagsangivelse, men i Switch kan vi flette alle betingelser og udtryk i en erklæring i stedet for at have flere sagsangivelser.
Syntaks for switch-erklæring
Skift beregner det første udtryk, og hvis værdien er sand, returnerer den værdien for udtrykket, og hvis værdien for udtryk 1 ikke er sand, fortsætter den med samme beregning for udtryk 2, og hvis resultatet er sandt, vises værdi 2, men hvis udtrykket returneres er falsk, skifteren går videre til et andet udtryk.
Så hvad sker der, hvis intet af udtrykket er sandt, og alle af dem returneres som falske, vi får fejl i køretid i sådanne tilfælde, medmindre vi har en forebyggende fejlhåndtering for et sådant scenario.
Hvordan bruges switch-erklæring i Excel VBA?
Nedenfor er de forskellige eksempler til brug af VBA Switch Statement i Excel.
Du kan downloade denne VBA-switch Excel-skabelon her - VBA-switch Excel-skabelonVBA-switch - eksempel # 1
Lad os starte med det grundlæggende eksempel for at få en idé om VBA-switch-erklæringen. Vi tager input fra brugeren og på baggrund af det input definerer vi output. Vi tager input fra nummer 1 til 5 og baseret på input vil vi have foruddefinerede resultater, men hvis brugeren indtaster et andet nummer end vores interval, bliver vi nødt til at håndtere denne fejl.
Følg nedenstående trin for at bruge Switch Statement i Excel VBA:
Trin 1: Fra den visuelle basale fane skal du indtaste VB-editoren fra udviklerens fane.
Trin 2: I VB Editor-vinduet skal du indsætte et nyt modul fra fanen Indsæt.
Trin 3: Erklær en ny underprocedure i det nye netop oprettede modul.
Kode:
Undereksempel () Slutundert
Trin 4: Angiv to variabler A og B, en som heltal og en anden som en streng.
Kode:
Underprøve () Dim A som heltal Dim B Som streng slutning Sub
Trin 5: I variabel A gemmes værdien af brugeren ved hjælp af inputbox-funktionen.
Kode:
Underprøve () Dim A som heltal Dim B som streng A = InputBox ("Indtast en værdi", "værdien skal være mellem 1 og 5") End Sub
Trin 6: Nu i variabel B vil vi bruge en VBA-switch-erklæring for at have evalueret resultatet som pr. Input leveret af brugeren.
Kode:
Underprøve () Dim A som heltal Dim B som streng A = InputBox ("Indtast en værdi", "værdien skal være mellem 1 og 5") B = switch (A = 1, "One", A = 2, "Two ", A = 3, " Tre ", A = 4, " Fire ", A = 5, " Fem ") End Sub
Trin 5: Vis den værdi, der er gemt i B ved hjælp af MSGBOX-funktionen.
Kode:
Underprøve () Dim A som heltal Dim B som streng A = InputBox ("Indtast en værdi", "værdien skal være mellem 1 og 5") B = switch (A = 1, "One", A = 2, "Two ", A = 3, " Tre ", A = 4, " Fire ", A = 5, " Fem ") MsgBox B End Sub
Trin 6: Kør ovenstående kode ved at trykke på F5-tasten, og den beder os om at indtaste et heltal. Angiv et nummer 3, og tryk på ok for at se resultatet.
Trin 7: Lad os køre koden igen og indtaste nummeret 6 og se resultatet, vi får.
Vi får fejl i køretid, da der i vores switch-erklæring ikke er et udtryk til at definere 6. Så i sådanne scenarier er vi nødt til at have en vis forebyggende fejlhåndtering.
Trin 8: For at overvinde denne fejl i kørselstid, erklær en anden variabel Var som Variant.
Kode:
Undereksempel () Dim A Som heltal Dim B Som streng Dim var Som variant A = InputBox ("Indtast en værdi", "værdien skal være mellem 1 og 5") B = Skifte (A = 1, "En", A = 2, "To", A = 3, "Tre", A = 4, "Fire", A = 5, "Fem") MsgBox B End Sub
Trin 9: Før vores switch-erklæring skal du bruge on-error goto-erklæringen, så hvis koden finder en fejl, ved den, hvor den skal gå.
Kode:
Undereksempel () Dim A Som heltal Dim B Som streng Dim var Som variant A = InputBox ("Indtast en værdi", "værdien skal være mellem 1 og 5") Ved fejl GoTo var B = switch (A = 1, "One ", A = 2, " To ", A = 3, " Tre ", A = 4, " Fire ", A = 5, " Fem ") MsgBox B End Sub
Trin 10: Definer nu, hvad der vil ske, hvis koden støder på en fejl,
Kode:
Undereksempel () Dim A Som heltal Dim B Som streng Dim var Som variant A = InputBox ("Indtast en værdi", "værdien skal være mellem 1 og 5") Ved fejl GoTo var B = switch (A = 1, "One ", A = 2, " To ", A = 3, " Tre ", A = 4, " Fire ", A = 5, " Fem ") MsgBox B var: MsgBox" Du har indtastet ugyldigt nummer "Genoptag næste slut Sub
Trin 11: Lad os nu køre koden igen ved at trykke på F5 eller klikke på knappen Afspil og indtastningsværdi 6 og derefter Tryk på ok for at se det endelige resultat i tilfælde af, at switch-erklæring støder på en fejl.
VBA-switch - eksempel # 2
I dette eksempel har jeg data i ark 1, der indeholder navnet på nogle film og deres tidsvarighed i minutter. Baseret på deres længde vil jeg definere, at filmen er kort eller super lang. Se på nedenstående data.
Følg nedenstående trin for at bruge Switch Statement i Excel VBA:
Trin 1: Lad os starte i det samme modul og starte med at definere en anden underprocedure som følger.
Underprøve1 () Slutundert
Trin 2: Angiv to variabler A og B, den ene som heltal den anden som streng som følger,
Underprøve1 () Dim A Som heltal Dim B Som strengende slut Sub
Trin 3: Lad os nu i variabel A gemme værdien af filmlængden for nogen af filmene.
Underprøve1 () Dim A som heltal Dim B som streng A = rækkevidde ("A3"). Offset (0, 1) .Value End Sub
Trin 4: Lad os nu i variabel B bruge en VBA-switch-erklæring til at definere, hvad scenariet ville være for hver filmlængde.
Underprøve1 () Dim A som heltal Dim B som streng A = rækkevidde ("A3"). Offset (0, 1). Værdi B = switch (A <= 70, "for kort", A <= 100, "kort ", A <= 120, " Long ", A <= 150, " Too Long ") End Sub
Trin 5: Hvad nu, hvis værdien er større end 180, hvis vi har en anden fejlhåndterer her, eller vi kan blot skrive et andet udtryk som sandt, værdi. Da alle de andre værdier returneres, da den falske kode udfører dette udtryk.
Underprøve1 () Dim A som heltal Dim B som streng A = rækkevidde ("A3"). Offset (0, 1). Værdi B = switch (A <= 70, "for kort", A <= 100, "kort ", A <= 120, " Lang ", A <= 150, " For lang ", sandt, " Kedelig ") End Sub
Trin 6: Vis værdien af B ved hjælp af funktionen msgbox.
Underprøve1 () Dim A som heltal Dim B som streng A = rækkevidde ("A3"). Offset (0, 1). Værdi B = switch (A <= 70, "for kort", A <= 100, "kort ", A <= 120, " Lang ", A <= 150, " For lang ", sandt, " Kedelig ") MsgBox B End Sub
Trin 7: Kør koden ved at trykke på F5-tasten eller ved at klikke på Play-knappen og se output.
A3-celle har film 2, hvis længde var 100, så output så kort.
VBA-switch - eksempel # 3
Lad brug switch-erklæring for at oprette en brugerdefineret funktion til ovenstående eksempel, så vi kan bruge den i vores regneark, når det er nødvendigt.
Følg nedenstående trin for at bruge Switch Statement i Excel VBA:
Trin 1: I det samme modul erklæres en funktion kaldet filmlængde.
Funktion Filmlængde (længde som heltal) som streng slutfunktion
Trin 2: Brug nu en VBA Switch-sætning til at definere parametrene baseret på længden som følger,
Funktion Filmlængde (længde som heltal) som streng Filmlængde = switch (længde <= 70, "for kort", længde <= 100, "kort", længde <= 120, "lang", længde <= 150, "for lang", Sandt, "Kedeligt") Slutfunktion
Trin 3: Lad os gå ind i det regneark, hvor vi havde vores data, type = FilmLength (
Trin 4: Vi kan se vores funktion der give et argument som værdier i celle B2.
Trin 5: Tryk på enter, når du har anvendt formlen.
Trin 6: Træk nu funktionen til celle C10 og se resultatet.
Ting at huske
- Skiftfunktion evaluerer udtrykket i det. Hvis det første udtryk evalueres sandt, vurderer det ikke de andre udtryk.
- Hvis intet af udtrykket er sandt, returnerer det en kørselsfejl.
- Vi er nødt til at have en fejlbehandler i switch-erklæring eller -udtryk, så hvis hvert udtryk returneres forkert, ikke støder vi på en fejl i kørselstiden.
- En switch ligner den valgte sagsangivelse.
Anbefalede artikler
Dette er en guide til VBA-switch. Her diskuteres hvordan man bruger switch statement i excel VBA sammen med nogle praktiske eksempler og downloadbar excel skabelon. Du kan også gennemgå vores andre foreslåede artikler -
- Brug af VBA InStr-funktion
- Excel SWITCH-funktion
- VBA tilfældigt antal
- CONCATENATE-funktion i Excel