VBA-Fallbeschreibung - Beispiele für VBA Select Case Statement

Inhaltsverzeichnis

Excel VBA-Fallbeschreibung

Die VBA-Fallbeschreibung ist eine der logischen Funktionen. Die Fallanweisung testet mehrere logische Tests und liefert das Ergebnis auf zwei Arten. Wenn das Ergebnis oder der logische Test WAHR ist, ist eine Ergebnismenge und wenn das Ergebnis oder der logische Test FALSCH ist, die zweite Ergebnismenge.

Logische Tests werden normalerweise mit IF-Formeln durchgeführt, sei es eine Arbeitsblattformel oder in VBA-Codierung. Auf beiden Plattformen hilft uns diese Funktion, viele Arten komplizierter Berechnungen durchzuführen. Nicht viele von uns erkennen, dass wir eine Alternative zur IF-Anweisung in VBA haben, dh „Case Statement“. Dieser Artikel enthält ausführliche Informationen zu dieser logischen Anweisung.

Syntax

Unten finden Sie die Syntax der Anweisung "Select Case".

Wählen Sie den Fall "Wert, der getestet werden soll". Fall ist "Logischer Test" Ergebnis, wenn Fall 1 WAHR ist Fall ist "Logischer Test" Ergebnis, wenn Fall 2 WAHR ist Fall ist "Logischer Test" Ergebnis, wenn Fall 3 WAHR ist Fall Andernfalls, wenn keiner der Ergebnisse sind TRUE End Select

Dies ähnelt fast der IF-Anweisungssyntax, aber anstatt ELSEIF zu verwenden, verwenden wir Fall 1, Fall 2, Fall 3 usw.

Beispiele für die VBA-Fallbeschreibung

Beispiel 1

In Zelle A1 habe ich die Nummer als 240 eingegeben.

Jetzt testen wir diese Zahl mithilfe der SELECT CASE-Anweisung, ob sie größer als 200 ist oder nicht .

Schritt 1: Öffnen Sie jetzt die Select Case-Anweisung.

Code:

Sub Select_Case_Example1 () Wählen Sie Case End Sub

Schritt 2: Sobald der „Select Case“ geöffnet ist, müssen wir den Wert angeben, den wir testen. In diesem Fall testen wir die Werte der Zelle A1.

Code:

Sub Select_Case_Example1 () Wählen Sie den Fallbereich ("A1"). Value End Sub

Schritt 3: Sobald der zu testende Wert jetzt angegeben ist, müssen wir logische Tests in Excel anwenden, indem wir das Wort " Fall ist " verwenden.

Code:

Sub Select_Case_Example1 () Wählen Sie den Fallbereich ("A1"). Der Wert Case ist> 200 End Sub

Schritt 4: In der nächsten Zeile müssen wir nun den Wert "Ergebnis" angeben, wenn der angewendete logische Test WAHR ist. Im Meldungsfeld benötigen wir das Ergebnis als "Nummer ist> 200".

Code:

Sub Select_Case_Example1 () Wählen Sie den Fallbereich ("A1"). Wert Fall ist> 200 MsgBox "Nummer ist> 200" End Sub

Schritt 5: In diesem Beispiel benötigen wir nur zwei Ergebnisse, daher werde ich keine weiteren "Case Is" -Anweisungen verwenden. Als nächstes werde ich das Wort "Case Else" verwenden, um die VBA-Anweisung "Select Case" zu schließen.

Code:

Sub Select_Case_Example1 () Wählen Sie den Fallbereich ("A1"). Wert Fall ist> 200 MsgBox "Nummer ist> 200" Fall Sonst MsgBox "Nummer ist <200" End Sub

Schritt 6: Sobald alle Fälle geliefert wurden, müssen wir die Anweisung select case mit dem Wort „End Select“ schließen.

Code:

Sub Select_Case_Example1 () Fallbereich auswählen ("A1"). Wert Fall ist> 200 MsgBox "Nummer ist> 200" Fall Sonst MsgBox "Nummer ist <200" End Select End Sub

Schritt 7: Führen Sie nun den Code aus und sehen Sie, welches Ergebnis im VBA-Meldungsfeld angezeigt wird.

Das Ergebnis ist "Zahl ist> 200", da in Zelle A1 der Wert 240 ist, was> 200 ist.

Beispiel 2

Jetzt sehen wir einige praktische Beispiele für Testergebnisse in Echtzeit. Schauen Sie sich den folgenden VBA-Code an.

Code:

Sub Select_Case_Example2 () Dim ScoreCard As Integer ScoreCard = Application.InputBox ("Score sollte s / w 0 bis 100 sein", "Was ist der Score, den Sie testen möchten") Select Case ScoreCard Case Is> = 85 MsgBox "Distinction" Case Ist> = 60 MsgBox "First Class" Fall ist> = 50 MsgBox "Second Class" Fall ist> = 35 MsgBox "Pass" Fall Sonst MsgBox "Fail" End Select End Sub

Lassen Sie mich den Code Zeile für Zeile erklären, um ihn besser zu verstehen.

Zuerst habe ich die Variable als Integer deklariert und für diese Variable die InputBox in VBA zugewiesen, in der ein Benutzer die Punktzahl zwischen 0 und 100 eingeben muss.

Wenn Sie den Code ausführen, wird das Eingabefeld wie folgt angezeigt. In dieses Eingabefeld müssen Sie die Punktzahl eingeben.

Jetzt wird alles, was wir in das Eingabefeld eingeben, in der Variablen "ScoreCard" gespeichert.

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 ist eine Alternative zur IF-Anweisung.
  • Select Case ist nur mit VBA verfügbar.
  • In der ersten Zeile von „Select Case“ müssen wir nur den Wert angeben, der getestet werden muss. Dann müssen wir in der Zeile "Fall" den logischen Test anwenden. Dies ist anders als bei unserer IF-Bedingung.

Interessante Beiträge...