Wie verwende ich die select case-anweisung in vba?

Wichtige Punkte

  • Mit SELECT CASE können Sie mehrere Bedingungen testen, insbesondere wenn Sie an mehr als zwei arbeiten.
  • Der Code, den Sie mit SELECT CASE schreiben, ist viel strukturierter als standardmäßiger bedingter Code.
  • Es ist einfacher, ihn zu ändern, wenn Sie einen oder mehrere Werte im Code anpassen müssen.

Was ist VBA Select Case?

VBA SELECT CASE ist eine Anweisung zum Testen mehrerer Bedingungen. In dieser Anweisung können Sie eine Bedingung und dann Code angeben, der ausgeführt werden soll, wenn diese Bedingung wahr ist. Anschließend können Sie eine zweite Bedingung und Code angeben, der ausgeführt werden soll, wenn diese Bedingung wahr ist. Auf diese Weise können Sie mehrere Bedingungen und mehrere Anweisungen angeben.

Die Syntax zur Auswahl des Falls

Nachfolgend finden Sie die Syntax, die Sie befolgen müssen, um eine Select-Case-Anweisung zu schreiben.

 Select Case Test Expression Case (Condition to Test) Statement1 [Line of Code to Run if CASE 1 is TRUE] Case (Condition to Test) Statement1 [Line of Code to Run if CASE 2 is TRUE] Case Else Statement [Line of Code to Run if no CASE is TRUE] End Select

Bei SELECT CASE beginnt die Syntax mit dem Schlüsselwort „Select“ und endet mit „End Select“. Um seine Syntax zu verstehen, müssen wir ihn in vier Teile unterteilen:

Select-Case-Syntax
  • Im ERSTEN Teil müssen Sie den „Testausdruck“ angeben, anhand dessen alle Bedingungen getestet werden.
  • Danach müssen Sie im ZWEITEN Teil den zu testenden Fall (also die zu testende Bedingung) angeben.
  • Nun müssen Sie im DRITTEN Teil einen weiteren Fall schreiben, in dem Sie testen müssen, ob die Bedingung im zweiten Teil nicht WAHR ist.
  • Am Ende müssen Sie in Teil VIER ein Ergebnis angeben, das auftreten soll, wenn beide oben genannten Fälle nicht WAHR sind.

Ein einfaches Beispiel zum Verständnis einer Select-Case-Anweisung

Die Syntax von SELECT CASE ist selbsterklärend und beim Schreiben von Code recht einfach zu befolgen. Aber nehmen wir ein Beispiel und verstehen es vollständig. Unten finden Sie einen einfachen Code zum Testen des Werts von Zelle A1.

 Sub SelectCaseExample1() Select Case Range("A1").Value Case "Yes" MsgBox "It's a Yes." Case "No" MsgBox "It's a No" Case Else MsgBox "Can't Say" End Select End Sub

Lassen Sie uns nun diesen Code mit jeder Zeile verstehen:

Beispiel für eine Select-Case-Anweisung
  • ZUERST müssen Sie das Schlüsselwort SELECT CASE und Zelle A1 als Ausdruck zum Testen der Bedingung verwenden.
  • ZWEITENS haben Sie das Schlüsselwort CASE und die Bedingung („YES“), um in Zelle A1 zu prüfen, sowie den Code, um ein Meldungsfeld mit der Meldung „Es ist ein Ja“ anzuzeigen, ob die in case1 genannte Bedingung wahr ist.
  • DRITTENS haben Sie wieder das Schlüsselwort case und die Bedingung („Nein“), die Sie in Zelle A1 überprüfen müssen, sowie den Code, um ein Meldungsfeld mit der Meldung „Es ist ein Nein“ anzuzeigen, wenn die in Fall zwei genannte Bedingung wahr ist.
  • VIERTENS haben Sie das Schlüsselwort CASE ELSE und eine Codezeile, um ein Meldungsfeld mit der Meldung „Kann nicht sagen“ anzuzeigen, wenn keiner der Fälle zutrifft.
  • FÜNFTENS verfügen Sie über das Schlüsselwort END SELECT, um die SELECT CASE-Anweisung zu beenden.

Verwandt: VBA-MELDUNGSBOX

Wichtige Punkte

  • Es kann mehrere Bedingungen testen und basierend auf dem Ergebnis eine Codezeile ausführen.
  • Sie können Vergleichsoperatoren (=, >, <, <>, >=, <=) verwenden, wenn Sie eine Bedingung mit dem Schlüsselwort Is testen.
  • Sie können ein Komma verwenden, um mehrere Bedingungen im selben Fall zu testen.
  • Sie können auch einen Zahlenbereich verwenden, wenn Sie eine Bedingung in einem einzelnen Fall testen.
  • Wenn eine Bedingung erfüllt ist, stoppt VBA, um die restlichen Fälle der Anweisung zu testen.
  • Sie können am Ende auch einen Abschnitt „case else“ hinzufügen, um eine Codezeile auszuführen, wenn keine der Bedingungen erfüllt ist.
  • Sie können mit der CASE END-Anweisung überspringen.

Weitere Beispiele zur Verwendung von Groß-/Kleinschreibung auswählen

Es ist an der Zeit, SELECT CASE auf unterschiedliche Weise zu verwenden, und hier sind einige der nützlichen und wesentlichen Beispiele, die Sie lernen können.

100 Beispiele für Excel-Makros

1. Wählen Sie den Fall mit Zahlen aus

Beim Schreiben von VBA-Code für die SELECT CASE-Anweisung können Sie Operatoren zum Vergleichen von Werten verwenden. Jetzt haben Sie im Code unten die Operatoren >, < und =, um die Bedingungen zu testen.

Groß-/Kleinschreibung mit Zahlen auswählen
 Sub SelectCaseExample1() Select Case Range("A1").Value Case Is >= 45 MsgBox "Pass" Case Is < 45 MsgBox "Fail" End Select End Sub
  • Der erste Fall dieser Anweisung prüft, ob der Wert der Zelle A1 größer oder gleich 45 ist oder nicht und gibt ein Meldungsfeld mit der Meldung „Bestanden“ zurück.
  • Und im zweiten Fall der Anweisung wird geprüft, ob der Wert von Zelle A1 kleiner als 45 ist, und es wird ein Meldungsfeld mit der Meldung „Fehlgeschlagen“ zurückgegeben.

2. Wählen Sie den Fall mit einem Zahlenbereich aus

Sie können auch einen Zahlenbereich verwenden, um den Zustand zu testen. Im folgenden Code müssen Sie jeweils eine Bedingung mit einem Zahlenbereich testen.

 Sub SelectCaseExample2() Select Case Range(“A1”).Value Case 45 To 100 MsgBox “Pass” Case 0 To 44 MsgBox “Fail” Case Else MsgBox “Out of Range” End Select End Sub
  • Im ersten Fall der Anweisung wird die Zahl in Zelle A1 anhand des Zahlenbereichs 45 bis 100 überprüft und „Bestanden“ zurückgegeben, wenn der Wert unter diesen Bereich fällt.
  • Die zweite Anweisung hat einen Bereich von 0 bis 44 zum Testen mit dem Wert in Zelle A1 und gibt „Fehlgeschlagen“ zurück, wenn der Wert unter diesen Bereich fällt.
  • Die dritte Anweisung lautet: case else zeigt ein Meldungsfeld mit der Meldung „Außerhalb des Bereichs“ an, wenn die Fälle eins und zwei falsch sind.

3. Verwendung des Doppelpunkt-Operators

Wenn Sie Code für SELECT CASE schreiben, können Sie die Doppelpunktoperatoren verwenden, um den gesamten Fall in einer einzigen Zeile zu schreiben.

Im folgenden Code beginnt die Zeile mit dem Fall, dann mit der zu testenden Bedingung, dann mit einem Doppelpunkt und dann mit der in diesem Fall auszuführenden Anweisung „true“.

using-colon-operator
 Sub SelectCaseExample3() Select Case Range(“A1”).Value Case 45 To 100: MsgBox “Pass” Case 0 To 44: MsgBox “Fail” Case Else: MsgBox “Out of Range” End Select End Sub

4. Verwenden Sie „Fall auswählen“ mit mehreren Bedingungen

Genau wie beim Festlegen eines Bereichs für einen Fall können Sie auch mehrere Werte angeben, um die Bedingung zu testen. Im folgenden Code müssen für jeden Fall drei Zahlen getestet werden.

Wählen Sie einen Fall mit mehreren Werten aus
 Sub SelectCaseExample() Select Case Range("A1").Value Case 1, 3, 5 MsgBox "Yes" Case 2, 4, 6 MsgBox "No" Case Else MsgBox "Out of range" End Select End Sub
  • Im ersten Fall dieses Codes wird der Zellenwert getestet, ob er 1, 3 oder 5 ist, und in einem Meldungsfeld „Ja“ zurückgegeben.
  • Und im zweiten Fall dieses Codes wird der Wert von Zelle A1 getestet, ob er 2, 4 oder 6 ist.

5. Verwenden von „Groß-/Kleinschreibung auswählen“ in einer benutzerdefinierten Funktion

Sie können SELECT CASE auch verwenden, wenn Sie Code für eine VBA-Funktion schreiben.

Groß-/Kleinschreibung in benutzerdefinierter Funktion auswählen
 Function udfGrade(student_marks As Integer) Dim myGrade As String Select Case student_marks Case Is < 40: myGrade = “Bad” Case 41 To 50: myGrade = “Average” Case 51 To 60: myGrade = “Good” Case 61 To 80: myGrade = “Very Good” Case 81 To 100: myGrade = “Excellent” End Select udfGrade = myGrade End Function

In der obigen Funktion gibt es fünf Kästchen, um die Punktzahl der Schüler in einer Zelle zu überprüfen. Alle 5 Fälle verwenden einen Zahlenbereich und geben den in der Anweisung definierten Wert zurück.

6. Verwenden Sie „Fall aus verschachtelten Bedingungen auswählen“.

Sie können auch eine verschachtelte Bedingungsanweisung erstellen. Ich möchte damit sagen, dass Sie Code schreiben können, um mehrere Bedingungen mit dem ausgewählten Fall zu testen.

Stellen Sie sich vor, Sie möchten Code schreiben, der Bedingungen basierend auf den Werten zweier verschiedener Zellen testen kann.

 Sub SelectCaseStatement() Select Case Range("A2") Case "Boy" Select Case Range("B2") Case "Commerce": MsgBox "Boy (Commerce)" Case "Science": MsgBox "Boy (Science)" End Select Case "Girl" Select Case Range("B2") Case "Commerce": MsgBox "Girl (Commerce)" Case "Science": MsgBox "Girl (Science)" End Select End Select End Sub
Wählen Sie einen Fall aus verschachtelten Bedingungen aus

Im obigen Code gibt es drei case-select-Anweisungen. Es gibt eine Hauptanweisung, die den Wert der Zelle A2 prüft, ob es sich um „Junge“ oder „Mädchen“ handelt.

Basierend auf dem Ergebnis werden dann zwei weitere Anweisungen ausgeführt und der Wert der Zelle B2 überprüft, ob es sich um „Commerce“ oder „Science“ handelt.

CHOOSE CASE vs. IF THEN ELSE-Anweisung

  • Wenn Sie mehrere Bedingungen testen möchten, ist es einfach, Code mit SELECT CASE anstelle von IF-THEN zu schreiben.
  • Im Vergleich zu IF-THEN ist es sogar einfacher, eine SELECT CASE-Anweisung zu bearbeiten und Änderungen vorzunehmen.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert