VBA-casusverklaring - Voorbeelden van VBA Select Case Statement

Excel VBA-casusverklaring

VBA Case Statement is een van de logische functies. Case Statement test meerdere logische tests en komt op twee manieren tot het resultaat, dwz als het resultaat of de logische test WAAR is één set resultaten en als het resultaat of de logische test FALSE is, dan de tweede set resultaten.

Logische tests worden doorgaans uitgevoerd met behulp van IF-formules, of het nu een werkbladformule is of in VBA-codering; op beide platforms helpt deze functie ons om vele soorten gecompliceerde berekeningen uit te voeren. Weinigen van ons realiseren zich dat we een alternatief hebben voor de IF-verklaring in VBA, namelijk 'Case Statement'. Dit artikel geeft u volledige details over deze logische verklaring.

Syntaxis

Hieronder staat de syntaxis van de "Select Case" -instructie.

Selecteer casus "Te testen waarde" Casus is "Logische test" Resultaat als casus 1 WAAR is Casus is "logische test" Resultaat als casus 2 WAAR is Casus is "logische test" Resultaat als casus 3 WAAR is Anders geval Als geen van de resultaten zijn TRUE End Select

Dit is bijna vergelijkbaar met de syntaxis van de IF-instructies, maar in plaats van ELSEIF te gebruiken, gebruiken we Case 1, Case 2, Case 3, enzovoort.

Voorbeelden van VBA Case Statement

Voorbeeld 1

In cel A1 heb ik het getal 240 ingevoerd.

Nu zullen we dit aantal testen of dit groter is dan 200 of niet met behulp van de SELECT CASE-instructie .

Stap 1: Open nu de Select Case-instructie.

Code:

Sub Select_Case_Example1 () Selecteer Case End Sub

Stap 2: Zodra de "Select Case" is geopend, moeten we opgeven wat de waarde is die we testen. In dit geval testen we cel A1-waarden.

Code:

Sub Select_Case_Example1 () Selecteer Case Range ("A1") Waarde End Sub

Stap 3: Zodra de te testen waarde nu is gegeven, moeten we logische tests in Excel toepassen door het woord " Case Is " te gebruiken.

Code:

Sub Select_Case_Example1 () Selecteer Case Range ("A1") Waarde Case is> 200 End Sub

Stap 4: Nu, in de volgende regel, moeten we de “resultaat” -waarde opgeven als de toegepaste logische test WAAR is. In het berichtvenster hebben we het resultaat nodig als "Getal is> 200".

Code:

Sub Select_Case_Example1 () Selecteer Case Range ("A1"). Waarde Case is> 200 MsgBox "Number is> 200" End Sub

Stap 5: In dit voorbeeld hebben we slechts twee resultaten nodig, dus ik zal niet meer "Case Is" -instructies gebruiken. Vervolgens zal ik het woord "Case Else" gebruiken om de VBA-instructie "Select Case" te sluiten.

Code:

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

Stap 6: Zodra alle cases zijn aangeleverd, moeten we de select case-instructie sluiten met het woord "End Select".

Code:

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

Stap 7: Voer nu de code uit en kijk wat het resultaat is dat we krijgen in het VBA-berichtvenster.

Het resultaat dat we hebben is "Getal is> 200" omdat in cel A1 de waarde 240 is, wat> 200 is.

Voorbeeld 2

Nu zullen we enkele praktische real-time voorbeelden van testscores zien. Kijk naar de onderstaande VBA-code.

Code:

Sub Select_Case_Example2 () Dim ScoreCard As Integer ScoreCard = Application.InputBox ("Score moet tussen 0 en 100 zijn", "Wat is de score die je wilt testen") Selecteer Case ScoreCard Case Is> = 85 MsgBox "Distinction" Case Is> = 60 MsgBox "First Class" Case Is> = 50 MsgBox "Second Class" Case Is> = 35 MsgBox "Pass" Case Else MsgBox "Fail" End Select End Sub

Laat me de code regel voor regel uitleggen om het beter te begrijpen.

Ten eerste heb ik de variabele gedeclareerd als Integer, en voor deze variabele heb ik de InputBox in VBA toegewezen, waar een gebruiker de score tussen 0 en 100 moet invoeren.

Wanneer u de code uitvoert, ziet u het invoervak ​​zoals hieronder, en in dit invoervak ​​moet u de score invoeren.

Wat we nu invoeren in het invoervak, wordt opgeslagen in de variabele '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 is een alternatief voor de IF-instructie.
  • Select Case is alleen beschikbaar met VBA.
  • In de eerste regel van "Case selecteren" hoeven we alleen de waarde op te geven die moet worden getest. Vervolgens moeten we in de regel "Case" de logische test toepassen. Dit is in tegenstelling tot onze ALS-toestand.

Interessante artikelen...