VBA-sagserklæring - Eksempler på VBA Select sagserklæring

Indholdsfortegnelse

Excel VBA sagserklæring

VBA-sagserklæring er en af ​​de logiske funktioner. Case Statement tester flere logiske tests og ankommer resultatet på to måder, dvs. hvis resultatet eller den logiske test er SAND et sæt resultat, og hvis resultatet eller den logiske test er FALSK, så er det andet sæt resultat.

Logiske tests udføres typisk ved hjælp af IF-formler, det være sig en regnearkformel eller i VBA-kodning; på begge platforme hjælper denne funktion os med at udføre mange slags komplicerede beregninger. Ikke mange af os er klar over, at vi har et alternativ til IF-udsagnet i VBA, dvs. "Sagserklæring." Denne artikel giver dig alle detaljer om denne logiske erklæring.

Syntaks

Nedenfor er syntaksen for udsagnet "Vælg sag".

Vælg sag "Værdi, der skal testes" Sag er "Logisk test" Resultat, hvis sag 1 er SAND Sag er "Logisk test" Resultat, hvis sag 2 er SAND sag er "Logisk test" Resultat, hvis sag 3 er SAND sag Ellers, hvis ingen af resultaterne er TRUE End Select

Dette svarer næsten til IF-sætningens syntaks, men i stedet for at bruge ELSEIF bruger vi sag 1, sag 2, sag 3 osv.

Eksempler på VBA-sagserklæring

Eksempel nr. 1

I celle A1 har jeg indtastet tallet som 240.

Nu vil vi teste dette tal, om dette er større end 200 eller ikke ved hjælp af SELECT CASE-sætningen .

Trin 1: Åbn Vælg sagserklæring nu.

Kode:

Sub Select_Case_Example1 () Vælg Case End Sub

Trin 2: Når "Select Case" er åbnet, skal vi levere, hvad der er den værdi, vi tester. I dette tilfælde tester vi celle A1-værdier.

Kode:

Sub Select_Case_Example1 () Vælg Case Range ("A1"). Value End Sub

Trin 3: Når den værdi, der skal testes, er givet nu, er vi nødt til at anvende logiske tests i excel ved at bruge ordet " Case Is ".

Kode:

Sub Select_Case_Example1 () Vælg Case Range ("A1"). Value Case Is> 200 End Sub

Trin 4: Nu, i den næste linje, skal vi levere "resultat" -værdien, hvis den anvendte logiske test er SAND. I meddelelsesboksen har vi brug for resultatet som "Nummer er> 200".

Kode:

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

Trin 5: I dette eksempel har vi kun brug for to resultater, så jeg vil ikke bruge flere "Case Is" udsagn. Dernæst vil jeg bruge ordet "Case Else" til at lukke VBA "Select Case" -erklæringen.

Kode:

Sub Select_Case_Example1 () Vælg Case Range ("A1"). Værdi Case er> 200 MsgBox "Nummer er> 200" Case Else MsgBox "Number er <200" End Sub

Trin 6: Når alle sagerne er leveret, er vi nødt til at lukke den valgte sagserklæring ved at bruge ordet "Afslut valg".

Kode:

Sub Select_Case_Example1 () Vælg Case Range ("A1"). Værdi Case er> 200 MsgBox "Nummer er> 200" Case Else MsgBox "Number er <200" End Select End Sub

Trin 7: Kør nu koden og se, hvad resultatet vi får i VBA-meddelelsesfeltet.

Resultatet, vi fik, er "Nummer er> 200", fordi værdien i celle A1 er 240, hvilket er> 200.

Eksempel 2

Nu vil vi se nogle praktiske realtidseksempler på testresultater. Se på nedenstående VBA-kode.

Kode:

Sub Select_Case_Example2 () Dim ScoreCard As Integer ScoreCard = Application.InputBox ("Score skal s / h 0 til 100", "Hvad er den score, du vil teste") Vælg Case ScoreCard Case er> = 85 MsgBox "Distinction" -sag Is> = 60 MsgBox "First Class" Case Is> = 50 MsgBox "Second Class" Case Is> = 35 MsgBox "Pass" Case Ellers MsgBox "Fail" End Vælg End Sub

Lad mig forklare koden linje for linje for at forstå det bedre.

Først har jeg erklæret variablen som heltal, og for denne variabel har jeg tildelt InputBox i VBA, hvor en bruger skal indtaste scoren mellem 0 og 100.

Når du kører koden, vil du se inputfeltet som nedenfor, og i dette inputfelt skal du indtaste scoren.

Uanset hvad vi indtaster i inputboksen, gemmes nu i variablen "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-sætningen.
  • Select Case er kun tilgængelig med VBA.
  • I den første linje i "Vælg sag" behøver vi kun at levere den værdi, der skal testes. Derefter er det nødvendigt at anvende den logiske test i linien "Sag". Dette er i modsætning til vores IF-tilstand.

Interessante artikler...