VBA-Schalter - Wie verwende ich die switch-Anweisung in Excel VBA?

Inhaltsverzeichnis:

Anonim

Excel VBA Switch-Anweisung

Das Umschalten in VBA ähnelt der Auswahl der Groß- / Kleinschreibung. Der einzige Unterschied besteht darin, dass wir in einem Schalter viel weniger Codes schreiben müssen als in einem ausgewählten Fall. Wir können eine switch-Anweisung in eine Unterprozedur schreiben oder sie als benutzerdefinierte Funktion in VBA schreiben.

Switch in VBA wertet einen Ausdruck aus und gibt die Ausgabe basierend auf den Bedingungen für diesen Ausdruck aus. In Anweisungen für ausgewählte Fälle haben wir Fälle definiert, bei denen das Ergebnis b sein sollte, und so weiter. Dies war erforderlich, um viele Codes für die Anweisung select case zu schreiben. In Switch können jedoch alle Bedingungen und Ausdrücke in einer Anweisung zusammengefasst werden, anstatt mehrere case-Anweisungen zu haben.

Syntax der switch-Anweisung

Schalter berechnet den ersten Ausdruck und wenn der Wert wahr ist, gibt er den Wert für den Ausdruck zurück und wenn der Wert für Ausdruck 1 nicht wahr ist, wird die gleiche Berechnung für Ausdruck 2 durchgeführt und wenn das Ergebnis wahr ist, wird Wert 2 angezeigt, aber wenn Der zurückgegebene Ausdruck ist false. Der Schalter wechselt zu einem anderen Ausdruck.

Was passiert also, wenn keiner der Ausdrücke wahr ist und alle als False zurückgegeben werden? In diesem Fall wird ein Laufzeitfehler ausgegeben, es sei denn, wir haben eine vorbeugende Fehlerbehandlung für ein solches Szenario.

Wie verwende ich die switch-Anweisung in Excel VBA?

Im Folgenden sind die verschiedenen Beispiele für die Verwendung der VBA-Switch-Anweisung in Excel aufgeführt.

Sie können diese VBA Switch Excel-Vorlage hier herunterladen - VBA Switch Excel-Vorlage

VBA-Switch - Beispiel 1

Beginnen wir mit dem grundlegenden Beispiel, um einen Eindruck von der VBA-switch-Anweisung zu erhalten. Wir nehmen Eingaben vom Benutzer entgegen und definieren anhand dieser Eingaben die Ausgabe. Wir nehmen Eingaben von Nummer 1 bis 5 und basierend auf den Eingaben erhalten wir vordefinierte Ergebnisse. Wenn der Benutzer jedoch eine andere Nummer als unseren Bereich eingibt, müssen wir diesen Fehler behandeln.

Führen Sie die folgenden Schritte aus, um die Switch-Anweisung in Excel VBA zu verwenden:

Schritt 1: Rufen Sie auf der Registerkarte Visual Basic den VB-Editor auf der Registerkarte des Entwicklers auf.

Schritt 2: Fügen Sie im VB Editor-Fenster ein neues Modul über die Registerkarte Einfügen ein.

Schritt 3: Deklarieren Sie eine neue Unterprozedur in dem neu erstellten Modul.

Code:

 Sub Sample () End Sub 

Schritt 4: Deklarieren Sie zwei Variablen A und B, eine als Ganzzahl und eine andere als Zeichenfolge.

Code:

 Sub Sample () Dim A As Integer Dim B As String End Sub 

Schritt 5: In Variable A wird der Wert gespeichert, den der Benutzer mithilfe der Eingabefeldfunktion angibt.

Code:

 Sub Sample () Dim A As Integer Dim B As String A = InputBox ("Geben Sie einen Wert ein", "der Wert sollte zwischen 1 und 5 liegen") End Sub 

Schritt 6: Jetzt verwenden wir in Variable B eine VBA-switch-Anweisung, um das Ergebnis gemäß den vom Benutzer bereitgestellten Eingaben auszuwerten.

Code:

 Sub Sample () Dim A As Integer Dim B As String A = InputBox ("Wert eingeben", "Wert sollte zwischen 1 und 5 liegen") B = Switch (A = 1, "One", A = 2, "Two") ", A = 3, " Drei ", A = 4, " Vier ", A = 5, " Fünf ") End Sub 

Schritt 5: Zeigen Sie den in B gespeicherten Wert mit der MSGBOX-Funktion an.

Code:

 Sub Sample () Dim A As Integer Dim B As String A = InputBox ("Wert eingeben", "Wert sollte zwischen 1 und 5 liegen") B = Switch (A = 1, "One", A = 2, "Two") ", A = 3, " Drei ", A = 4, " Vier ", A = 5, " Fünf ") MsgBox B End Sub 

Schritt 6: Führen Sie den obigen Code durch Drücken der Taste F5 aus, und Sie werden aufgefordert, eine Ganzzahl einzugeben. Geben Sie eine Nummer 3 ein und drücken Sie OK, um das Ergebnis anzuzeigen.

Schritt 7: Lassen Sie uns nun den Code erneut ausführen und die Nummer 6 eingeben, um das Ergebnis zu sehen, das wir erhalten.

Wir erhalten den Laufzeitfehler, da in unserer switch-Anweisung kein Ausdruck definiert werden kann. 6. In solchen Szenarien ist eine vorbeugende Fehlerbehandlung erforderlich.

Schritt 8: Um diesen Laufzeitfehler zu beheben, deklarieren Sie eine andere Variable Var als Variant.

Code:

 Sub Sample () Dim A As Integer Dim B As String Dim var As Variante A = InputBox ("Wert eingeben", "Wert sollte zwischen 1 und 5 liegen") B = Switch (A = 1, "One", A = 2, "Zwei", A = 3, "Drei", A = 4, "Vier", A = 5, "Fünf") MsgBox B End Sub 

Schritt 9: Verwenden Sie vor unserer switch-Anweisung die goto-Anweisung on error, damit der Code weiß, wohin er gehen soll, wenn er einen Fehler findet.

Code:

 Sub Sample () Dim A As Integer Dim B As String Dim var As Variante A = InputBox ("Geben Sie einen Wert ein", "Wert sollte zwischen 1 und 5 liegen") On Error GoTo var B = Switch (A = 1, "One ", A = 2, " Zwei ", A = 3, " Drei ", A = 4, " Vier ", A = 5, " Fünf ") MsgBox B End Sub 

Schritt 10: Definieren Sie nun, was passieren soll, wenn der Code auf einen Fehler stößt.

Code:

 Sub Sample () Dim A As Integer Dim B As String Dim var As Variante A = InputBox ("Geben Sie einen Wert ein", "Wert sollte zwischen 1 und 5 liegen") On Error GoTo var B = Switch (A = 1, "One ", A = 2, " Zwei ", A = 3, " Drei ", A = 4, " Vier ", A = 5, " Fünf ") MsgBox B var: MsgBox" Sie haben eine ungültige Nummer eingegeben. "Resume Next End Sub 

Schritt 11: Lassen Sie uns nun den Code erneut ausführen, indem Sie F5 drücken oder auf die Wiedergabetaste klicken und den Wert 6 eingeben und dann OK drücken, um das Endergebnis zu sehen, falls die switch-Anweisung einen Fehler feststellt.

VBA-Switch - Beispiel 2

Für dieses Beispiel habe ich Daten in Blatt 1, die den Namen einiger Filme und deren Zeitdauer in Minuten enthalten. Anhand ihrer Länge möchte ich definieren, ob der Film kurz lang oder super lang ist. Schauen Sie sich die Daten unten an.

Führen Sie die folgenden Schritte aus, um die Switch-Anweisung in Excel VBA zu verwenden:

Schritt 1: Beginnen wir im selben Modul und definieren zunächst wie folgt eine andere Unterprozedur.

 Sub Sample1 () End Sub 

Schritt 2: Deklarieren Sie zwei Variablen A und B, eine als Ganzzahl und eine als Zeichenfolge, wie folgt:

 Sub Sample1 () Dim A As Integer Dim B As String End Sub 

Schritt 3: Lassen Sie uns nun in Variable A den Wert der Filmlänge für einen der Filme speichern.

 Sub Sample1 () Dim A As Integer Dim B As String A = Bereich ("A3"). Offset (0, 1) .Value End Sub 

Schritt 4: Lassen Sie uns nun in Variable B eine VBA-switch-Anweisung verwenden, um das Szenario für jede Filmlänge zu definieren.

 Sub Sample1 () Dim A As Integer Dim B As String A = Bereich ("A3"). Offset (0, 1). Wert B = Schalter (A <= 70, "Too Short", A <= 100, "Short" ", A <= 120, " Long ", A <= 150, " Too Long ") End Sub 

Schritt 5: Was ist nun, wenn der Wert größer als 180 ist, sollten wir hier einen anderen Fehlerbehandler haben oder einfach einen anderen Ausdruck als True, Value schreiben. Da alle anderen Werte als falscher Code zurückgegeben werden, wird dieser Ausdruck ausgeführt.

 Sub Sample1 () Dim A As Integer Dim B As String A = Bereich ("A3"). Offset (0, 1). Wert B = Schalter (A <= 70, "Too Short", A <= 100, "Short" ", A <= 120, " Long ", A <= 150, " Too Long ", True, " Boring ") End Sub 

Schritt 6: Zeigen Sie den Wert von B mit der Funktion msgbox an.

 Sub Sample1 () Dim A As Integer Dim B As String A = Bereich ("A3"). Offset (0, 1). Wert B = Schalter (A <= 70, "Too Short", A <= 100, "Short" ", A <= 120, " Long ", A <= 150, " Too Long ", True, " Boring ") MsgBox B End Sub 

Schritt 7: Führen Sie den Code aus, indem Sie die Taste F5 drücken oder auf die Schaltfläche Wiedergabe klicken und die Ausgabe anzeigen.

A3-Zelle hat Film 2, dessen Länge 100 war, so dass die Ausgabe so kurz ist.

VBA-Switch - Beispiel # 3

Verwenden Sie die switch-Anweisung, um eine benutzerdefinierte Funktion für das obige Beispiel zu erstellen, damit wir sie bei Bedarf in unserem Arbeitsblatt verwenden können.

Führen Sie die folgenden Schritte aus, um die Switch-Anweisung in Excel VBA zu verwenden:

Schritt 1: Deklarieren Sie im selben Modul eine Funktion, die als Filmlänge bezeichnet wird.

 Funktion FilmLength (Leng As Integer) Als String End Function 

Schritt 2: Verwenden Sie nun eine VBA-Switch-Anweisung, um die Parameter basierend auf der Länge wie folgt zu definieren:

 Funktion FilmLength (Länge als Ganzzahl) As String FilmLength = Switch (Länge <= 70, "Zu kurz", Länge <= 100, "Kurz", Länge <= 120, "Lang", Länge <= 150, "Zu lang"), True, "Boring") End Function 

Schritt 3: Gehen wir nun in das Arbeitsblatt, in dem wir unsere Daten hatten, und geben Sie = Filmlänge (

Schritt 4: Wir können sehen, dass unsere Funktion dort ein Argument als Werte in Zelle B2 angibt.

Schritt 5: Nachdem Sie die Formel angewendet haben, drücken Sie die Eingabetaste.

Schritt 6: Ziehen Sie nun die Funktion in die Zelle C10 und sehen Sie sich das Ergebnis an.

Dinge, an die man sich erinnern sollte

  • Die Switch-Funktion wertet den darin enthaltenen Ausdruck aus. Wenn der erste Ausdruck als wahr ausgewertet wird, werden die anderen Ausdrücke nicht ausgewertet.
  • Wenn keiner der Ausdrücke wahr ist, wird ein Laufzeitfehler zurückgegeben.
  • Wir benötigen eine Fehlerbehandlungsroutine in der switch-Anweisung oder im Ausdruck, damit kein Laufzeitfehler auftritt, wenn jeder Ausdruck false zurückgibt.
  • Ein Schalter ähnelt der Anweisung select case.

Empfohlene Artikel

Dies ist eine Anleitung zum VBA-Switch. Hier erfahren Sie, wie Sie die switch-Anweisung in Excel VBA verwenden, zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. Verwendung der VBA InStr-Funktion
  2. Excel-Switch-Funktion
  3. VBA-Zufallszahl
  4. CONCATENATE-Funktion in Excel