Excel VBA-uttalande
VBA Case Statement är en av de logiska funktionerna. Case Statement testar flera logiska tester och når resultatet på två sätt, dvs. om resultatet eller det logiska testet är SANT en uppsättning resultat och om resultatet eller det logiska testet är FALSKT så är den andra uppsättningen resultat.

Logiska tester utförs vanligtvis med IF-formler, vare sig det är en kalkylformel eller i VBA-kodning; på båda plattformarna hjälper den här funktionen oss att genomföra många typer av komplicerade beräkningar. Det är inte många av oss som inser att vi har ett alternativ till IF-uttalandet i VBA, dvs. "Case Statement." Den här artikeln ger dig fullständiga detaljer om detta logiska uttalande.
Syntax
Nedan följer syntaxen för ”Select Case” -uttalandet.
Välj fall "Värde som ska testas" Fall är "Logiskt test" Resultat om fall 1 är SANT Fall är "Logiskt test" Resultat om fall 2 är SANT fall är "Logiskt test" Resultat om fall 3 är SANT fall om inget av resultaten är SANT Slutval
Det här liknar nästan syntaxen för IF-uttalanden, men istället för att använda ELSEIF använder vi fall 1, fall 2, fall 3 och så vidare.
Exempel på VBA-fall
Exempel 1
I cell A1 har jag angett numret som 240.

Nu kommer vi att testa detta nummer om det här är större än 200 eller inte med SELECT CASE-satsen .
Steg 1: Öppna Select Case statement nu.
Koda:
Sub Select_Case_Example1 () Välj Case End Sub

Steg 2: När "Select Case" har öppnats måste vi ange vilket värde vi testar. I det här fallet testar vi cell A1-värden.
Koda:
Sub Select_Case_Example1 () Välj Case Range ("A1"). Value End Sub

Steg 3: När värdet som ska testas ges nu måste vi tillämpa logiska tester i excel med ordet " Case Is ".
Koda:
Sub Select_Case_Example1 () Välj Case Range ("A1"). Value Case Is> 200 End Sub

Steg 4: Nu, i nästa rad, måste vi ange "resultat" -värdet om det tillämpade logiska testet är SANT. I meddelandefältet behöver vi resultatet som "Antal är> 200".
Koda:
Sub Select_Case_Example1 () Välj Case Range ("A1"). Value Case Is> 200 MsgBox "Number is> 200" End Sub

Steg 5: I det här exemplet behöver vi bara två resultat, så jag kommer inte att använda fler "Case Is" -uttalanden. Därefter kommer jag att använda ordet "Case Else" för att stänga VBA "Select Case" -uttalandet.
Koda:
Sub Select_Case_Example1 () Välj Case Range ("A1"). Värde Case Is> 200 MsgBox "Number is> 200" Case Else MsgBox "Number is <200" End Sub

Steg 6: När alla ärenden har tillhandahållits måste vi stänga det valda ärendet genom att använda ordet "Slutval".
Koda:
Sub Select_Case_Example1 () Välj Case Range ("A1"). Värde Case är> 200 MsgBox "Antal är> 200" Case Else MsgBox "Number är <200" End Select End Sub

Steg 7: Kör nu koden och se vad resultatet vi får i meddelandefältet VBA.

Resultatet vi fick är "Number is> 200" eftersom i cell A1 är värdet 240, vilket är> 200.
Exempel 2
Nu kommer vi att se några praktiska exempel i realtid på testresultat. Titta på nedanstående VBA-kod.
Koda:
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") Välj Case ScoreCard Case Is> = 85 MsgBox "Distinction" Case Är> = 60 MsgBox "First Class" -fodral Är> = 50 MsgBox "Second Class" -fodral Is> = 35 MsgBox "Pass" -fodral MsgBox "Fail" Slut Välj Slut Sub

Låt mig förklara koden rad för rad för att förstå bättre.
Först har jag förklarat variabeln som heltal, och för denna variabel har jag tilldelat InputBox i VBA, där en användare måste ange poängen mellan 0 och 100.
När du kör koden ser du inmatningsrutan som nedan och i denna inmatningsruta måste du ange poängen.

Nu lagras vad vi anger i inmatningsrutan till variabeln "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 är ett alternativ till IF-uttalandet.
- Select Case är endast tillgängligt med VBA.
- I den första raden i "Välj fall" behöver vi bara ange det värde som behöver testas. Sedan i "Fall" -raden måste vi tillämpa det logiska testet. Detta skiljer sig från vårt IF-tillstånd.