VBA-sakserklæring - Eksempler på VBA Select Case Statement

Innholdsfortegnelse

Excel VBA-sakserklæring

VBA-saksuttalelse er en av de logiske funksjonene. Case Statement tester flere logiske tester og kommer til resultatet på to måter, dvs. hvis resultatet eller den logiske testen er SANT, ett sett med resultater, og hvis resultatet eller den logiske testen er FALSE, så er det andre settet med resultat.

Logiske tester utføres vanligvis ved bruk av IF-formler, det være seg en regnearkformel eller i VBA-koding; i begge plattformene hjelper denne funksjonen oss med å gjennomføre mange slags kompliserte beregninger. Det er ikke mange av oss som er klar over at vi har et alternativ til IF-uttalelsen i VBA, dvs. "Case Statement." Denne artikkelen gir deg fullstendige detaljer om denne logiske uttalelsen.

Syntaks

Nedenfor er syntaksen for "Select Case" -uttalelsen.

Velg Tilfelle "Verdi som skal testes" Tilfelle er "Logisk test" Resultat hvis Sak 1 er SANN Tilfelle er "Logisk test" Resultat hvis Sak 2 er SANN Tilfelle er "Logisk test" Resultat hvis Sak 3 er SANT Sak Annet Hvis ingen av resultatene er TRUE End Select

Dette er nesten likt IF-setningens syntaks, men i stedet for å bruke ELSEIF bruker vi Sak 1, Sak 2, Sak 3 og så videre.

Eksempler på uttalelse fra VBA

Eksempel 1

I celle A1 har jeg angitt tallet som 240.

Nå vil vi teste dette tallet om dette er større enn 200 eller ikke ved å bruke SELECT CASE-setningen .

Trinn 1: Åpne Select Case statement nå.

Kode:

Sub Select_Case_Example1 () Velg Case End Sub

Trinn 2: Når "Select Case" er åpnet, må vi oppgi hvilken verdi vi tester. I dette tilfellet tester vi celle A1-verdier.

Kode:

Sub Select_Case_Example1 () Velg Case Range ("A1"). Value End Sub

Trinn 3: Når verdien som skal testes er gitt nå, må vi bruke logiske tester i excel ved å bruke ordet " Case Is ".

Kode:

Sub Select_Case_Example1 () Velg Case Range ("A1"). Value Case Is> 200 End Sub

Trinn 4: Nå, i neste linje, må vi oppgi "resultat" -verdien hvis den anvendte logiske testen er SANT. I meldingsboksen trenger vi resultatet som “Antall er> 200”.

Kode:

Sub Select_Case_Example1 () Velg Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" End Sub

Trinn 5: I dette eksemplet trenger vi bare to resultater, så jeg vil ikke bruke flere "Case Is" -uttalelser. Deretter vil jeg bruke "Case Else" -ordet for å lukke VBA "Select Case" -uttalelsen.

Kode:

Sub Select_Case_Example1 () Velg Case Range ("A1"). Verdi Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Sub

Trinn 6: Når alle sakene er levert, må vi lukke den valgte saksuttalelsen ved å bruke ordet "End Select".

Kode:

Sub Select_Case_Example1 () Velg Case Range ("A1"). Verdi Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Select End Sub

Trinn 7: Kjør nå koden og se hva resultatet vi får i VBA-meldingsboksen.

Resultatet vi fikk er "Antall er> 200" fordi i celle A1 er verdien 240, som er> 200.

Eksempel 2

Nå vil vi se noen praktiske sanntidseksempler på testresultater. Se på VBA-koden nedenfor.

Kode:

Sub Select_Case_Example2 () Dim ScoreCard As Integer ScoreCard = Application.InputBox ("Score should be b / w 0 to 100", "What is the score you want to test") Velg Case ScoreCard Case Is> = 85 MsgBox "Distinction" Case Is> = 60 MsgBox "First Class" Case Er> = 50 MsgBox "Second Class" Case Is> = 35 MsgBox "Pass" Case Else MsgBox "Fail" End Velg End Sub

La meg forklare koden linje for linje for å forstå bedre.

Først har jeg erklært variabelen som heltall, og for denne variabelen har jeg tildelt InputBox i VBA, der en bruker må oppgi poengsummen mellom 0 og 100.

Når du kjører koden, vil du se inntastingsboksen som nedenfor, og i denne inntastingsboksen må du oppgi poengsummen.

Nå blir det vi skriver inn i inntastingsboksen lagret i variabelen "ScoreCard."

In the next line, I have applied a select case statement to test this score.

First, it will test the ScoreCard>=85 or not. If this is TRUE, then we will get the value in the message box as “Distinction.”

Select Case ScoreCard Case Is>= 85 MsgBox "Distinction"

Similarly, in the following lines, I have applied the second test as ScoreCard>=60. If this is TRUE, then it will show the result as “First.”

Case Is>= 60 MsgBox "First Class"

Like this, I have applied other tests as well, and in the end, I have used the “Case Else” statement. If all the applied logical tests are FALSE, then we will get the result as “Fail.”

Case Else MsgBox "Fail"

Now I have supplied 68 as the score, and we should get the result as “First Class” in the message box.

Example #3 - Using the “To” keyword

In the above example, we have used student scores to arrive at the result. The same test can be conducted by using the “To” word to determine the lower limit and upper limit of the logical test.

Code:

Sub Select_Case_Example3() Dim ScoreCard As Integer ScoreCard = Application.InputBox("Score should be b/w 0 to 100", "What is the score you want to test") Select Case ScoreCard Case 85 To 100 MsgBox "Distinction" Case 60 To 84 MsgBox "First Class" Case 50 To 59 MsgBox "Second Class" Case 35 To 49 MsgBox "Pass" Case Else MsgBox "Fail" End Select End Sub

I have used the same code as above, but the only yellow-colored area I have changed here. Based on the number we type in the input box accordingly, we will get the result.

Things to Remember

  • Select Case er et alternativ til IF-setningen.
  • Select Case er bare tilgjengelig med VBA.
  • I den første linjen i "Velg sak" trenger vi bare å oppgi verdien som må testes. Så i "Case" -linjen, må vi bruke den logiske testen. Dette er ulikt vår IF-tilstand.

Interessante artikler...