Excel VBA Switch Case
Switch Case oder Select Case ist eine in VBA verfügbare Anweisung, um logische Tests durchzuführen, bei denen sie als Alternative zur IF-THEN-Anweisung in VBA funktioniert. Mit einem Switch Case können wir mehrere logische Tests durchführen und Ergebnisse basierend auf mehreren Ergebnissen erhalten.
Unten finden Sie die Syntax der Anweisung Switch Case / Select Case.
Code:
Wählen Sie Fall-Fall-1-Wert aus, wenn Fall-1-Test WAHR ist. Fall-2-Wert, wenn Fall-2-Test WAHR ist. Fall-3-Wert, wenn Fall-3-Test WAHR ist
: Was ist der logische Test? Wir müssen hier den Test eingeben.
Fall 1, Fall 2: In jedem Fall müssen wir mehrere logische Tests in Excel testen.
Wie verwende ich die VBA Switch Case Statement?
Beispiel 1
In Zelle A1 habe ich den Wert als 550 eingegeben.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_2.png.webp)
Wir werden diese Nummer mit switch case-Anweisungen testen und den Status "Mehr als 500" erhalten, wenn der Wert mehr als 500 beträgt, oder wir werden den Status "Weniger als 500" erhalten.
Öffnen Sie zuerst die VBA-Subprozedur.
Code:
Sub Switch_Case () End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_3.png.webp)
Öffnen Sie Select Case Statement in VBA und geben Sie den Wert für den logischen Testbereich („A2“) an
Code:
Sub Switch_Case () Wählen Sie den Fallbereich ("A2"). Value End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_4.png.webp)
Geben Sie nun den ersten Fall als Fall> 500 ein.
Code:
Sub Switch_Case () Wählen Sie den Fallbereich ("A2"). Der Wert Case ist> 500 End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_5.png.webp)
Wenn dieser Fall WAHR ist, was ist dann das Ergebnis, das wir in Zelle B, 2 benötigen, dh "Mehr als 500".
Code:
Sub Switch_Case () Wählen Sie den Fallbereich ("A2"). Wert Fall ist> 500 Bereich ("B2"). Wert = "Mehr als 500" End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_6.png.webp)
Jetzt bleibt uns nur ein Ergebnis, nämlich die Case-Else-Aussage. Wenn der erste Fall FALSE ist, benötigen wir das Ergebnis als "Weniger als 500".
Code:
Sub Switch_Case () Wählen Sie den Fallbereich ("A2"). Wert Fall ist> 500 Bereich ("B2"). Wert = "Mehr als 500" Fall sonst Bereich ("B2"). Wert = "Weniger als 500" End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_7.png.webp)
Schließen Sie nun die Anweisung mit der Anweisung „End Select“.
Code:
Sub Switch_Case () Fallbereich auswählen ("A2"). Wert Fall ist> 500 Bereich ("B2"). Wert = "Mehr als 500" Fall sonst Bereich ("B2"). Wert = "Weniger als 500" Endauswahl End Sub
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_8.png.webp)
Führen Sie den Code aus, wir erhalten den Wert in Zelle B2.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement.gif)
Da der Wert in Zelle A2 größer als 500 ist, haben wir das Ergebnis als "Mehr als 500" erhalten.
Beispiel 2
Jetzt werden wir anhand weiterer Fallbeispiele sehen. Unten ist die Punktzahl des Studenten in der Prüfung.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_9.png.webp)
Mit dieser Punktzahl müssen wir zur Note gelangen, denn das unten ist das Kriterium.
- Punktzahl> = 85, Note = "Dist"
- Punktzahl> = 60, Note = "Erste"
- Punktzahl> = 50, Note = "Zweiter"
- Punktzahl> = 35, Note = „Bestanden“
- Wenn überhaupt, ist Grade = "Fail".
Code:
Sub Switch_Case1 ()
Dim Score As Integer Score = 65 Fallbewertung auswählen Fall ist> = 85 MsgBox "Dist" Fall ist> = 60 MsgBox "Erster" Fall ist> = 50 MsgBox "Zweiter" Fall ist> = 35 MsgBox "Pass" Fall Sonst MsgBox " Fail "End Select End Sub
Führen Sie diesen Code aus. Wir erhalten die Note im Nachrichtenfeld.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_2.gif)
Since the score is more than 60 but less than 85 grade is “First.”
Example #3
We have seen how to find a grade for one student, what about finding a grade for more than one student. Below are the scores of students.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_10.png.webp)
Since more than one student is involved, we need to enclose FOR NEXT loop in VBA. Below is the VBA code.
Code:
Sub Switch_Case2() Dim k As Integer For k = 2 To 7 Select Case Cells(k, 2).Value Case Is>= 85 Cells(k, 3).Value = "Dist" Case Is>= 60 Cells(k, 3).Value = "First" Case Is>= 50 Cells(k, 3).Value = "Second" Case Is>= 35 Cells(k, 3).Value = "Pass" Case Else Cells(k, 3).Value = "Fail" End Select Next k End Sub
Run this code. We will get grades.
![](https://cdn.know-base.net/9301396/vba_switch_case_examples_to_use_excel_vba_switch_statement_3.gif)
Things to Remember
- Switch Case is often referred to as “Select Case.”
- The switch is a function, not a statement.
- Wenn keine logischen Tests WAHR sind, können Sie das alternative Ergebnis einfach in der Anweisung CASE ELSE übergeben und die Anweisung immer mit dem Wort „END SELECT“ schließen.