Excel VBA verfügt über das Konstrukt IF Then Else, mit dem Sie mehrere Bedingungen analysieren und Codes ausführen können basierend auf diesen Bedingungen.
Ein weiteres ähnliches Konstrukt, mit dem Sie nach mehreren Bedingungen suchen können, ist die Anweisung SELECT CASE.
Fall auswählen ist nützlich, wenn Sie drei oder mehr Bedingungen haben, die Sie möchten überprüfen. Sie können dies auch unter zwei Bedingungen verwenden (aber ich bin der Meinung, dass If Then Else in diesen Fällen einfacher zu verwenden ist).
Ein einfaches Beispiel, bei dem die Anweisung Select Case nützlich ist, wenn Sie die Note a erhalten möchten Schüler basierend auf den Noten, die er / sie erzielt hat (als Beispiel weiter unten in diesem Lernprogramm behandelt).
Hinweis: Alle in diesem Lernprogramm behandelten Beispielcodes sollen in einem Modul in VBA platziert werden.
Dieses Tutorial behandelt:
Syntax für Groß- und Kleinschreibung auswählen
Nachfolgend finden Sie die Syntax für Groß- und Kleinschreibung in Excel VBA:
Select Case Test_ExpressionCase Value_1Code Block when Test_Expression = Value_1Case Value_2Code Block when Test_Expression = Value_2Case Value_3Code Block when Test_Expression = Value_3Case ElseCode Block when none of the case conditions are metEnd Select
- Test_Expression: Dies ist der Ausdruck, dessen Wert wir anhand verschiedener Fälle analysieren (anhand der folgenden Beispiele besser erläutert).
- Bedingung_1, Bedingung_2,…: Dies sind die Bedingungen, unter denen der Textausdruck getestet wird. Wenn es die Bedingung erfüllt, wird der Codeblock für die angegebene Bedingung ausgeführt.
Für jede Select Case-Anweisung, die Sie verwenden, müssen Sie die End Select-Anweisung verwenden.
Select Case-Beispiele
Nun zu Um die Verwendung der Select Case-Anweisung in VBA besser zu verstehen, gehen wir einige Beispiele durch.
Beachten Sie, dass die meisten Beispiele in diesem Lernprogramm das Konzept erläutern sollen. Dies ist möglicherweise der beste Weg, um die Arbeit zu erledigen.
Beginnen wir mit einem einfachen Beispiel dafür, wie Select Case es uns ermöglicht, nach Bedingungen zu suchen.
Beispiel 1 – Überprüfen Sie die Zahlen
Im folgenden Beispiel fordert der Code den Benutzer auf, eine beliebige Zahl zwischen 1 und 5 einzugeben, und zeigt dann ein Meldungsfeld mit der vom Benutzer eingegebenen Nummer an.
Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number between 1 and 5")Select Case UserInputCase 1MsgBox "You entered 1"Case 2MsgBox "You entered 2"Case 3MsgBox "You entered 3"Case 4MsgBox "You entered 4"Case 5MsgBox "You entered 5"End SelectEnd Sub
Beachten Sie, dass dieser Code alles andere als nützlich und nicht einmal narrensicher ist. Wenn Sie beispielsweise 6 oder eine beliebige Zeichenfolge eingeben, wird nichts unternommen. Wie bereits erwähnt, möchte ich hier zeigen, wie Select Case funktioniert.
Beispiel 2 – Verwenden von Select Case mit IS-Bedingung
Sie können eine IS-Bedingung mit dem Select Case-Konstrukt verwenden um den Wert von Zahlen zu überprüfen.
Der folgende Code prüft, ob die Eingabenummer größer als 100 ist oder nicht.
Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number")Select Case UserInputCase Is < 100MsgBox "You entered a number less than 100"Case Is >= 100MsgBox "You entered a number more than (or equal to) 100"End SelectEnd Sub
Beispiel 3 – Verwenden eines anderen Falls zum Abfangen aller
Im obigen Beispiel habe ich zwei Bedingungen verwendet (kleiner als 100 oder größer oder gleich 100).
Anstelle des zweiten Falls mit Als Bedingung können Sie auch Case Else verwenden.
Case Else fungiert als Sammelbegriff, und alles, was nicht in einen der vorherigen Fälle fällt, wird von Case Else behandelt.
Nachfolgend finden Sie einen Beispielcode, in dem ich die Groß- / Kleinschreibung verwendet habe:
Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number")Select Case UserInputCase Is < 100MsgBox "You entered a number less than 100"Case ElseMsgBox "You entered a number more than (or equal to) 100"End SelectEnd Sub
Beispiel 4 – Verwenden eines Zahlenbereichs
In Select In diesem Fall können Sie auch nach einem Zahlenbereich suchen.
Der folgende Code fordert Sie zur Eingabe auf und zeigt ein Meldungsfeld an, das auf dem Wert basiert.
Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number between 1 and 100")Select Case UserInputCase 1 To 25MsgBox "You entered a number less than 25"Case 26 To 50MsgBox "You entered a number between 26 and 50"Case 51 To 75MsgBox "You entered a number between 51 and 75"Case 75 To 100MsgBox "You entered a number more than 75"End SelectEnd Sub
Beispiel 5 – Ermitteln Sie die Note basierend auf den erzielten Noten
Bisher haben wir grundlegende Beispiele gesehen (die in der praktischen Welt nicht wirklich nützlich sind).
Hier ist ein Beispiel, das einem realen Beispiel näher kommt, in dem Sie Select Case in Excel VBA verwenden können.
Der folgende Code gibt Ihnen die Note, auf der ein Schüler basiert die Noten in einer Prüfung.
Der obige Code fragt den Benutzer nach den Noten und zeigt darauf basierend ein Meldungsfeld mit der Abschlussnote.
Im obigen Code habe ich Alle Bedingungen angegeben – für die Markierungen 0 – 100.
Eine andere Möglichkeit zur Verwendung von Fall auswählen ist die Verwendung eines anderen Falls am Ende. Dies ist nützlich, wenn Sie alle Bedingungen berücksichtigt haben und dann angeben, was zu tun ist, wenn keine der Bedingungen erfüllt ist.
Der folgende Code ist eine Variation des Notencodes mit einer geringfügigen Änderung. Am Ende gibt es eine Case else-Anweisung, die ausgeführt wird, wenn keine der oben genannten Bedingungen erfüllt ist.
Beispiel 6 – Erstellen einer benutzerdefinierten Funktion (UDF) mit Select Case
Im obigen Beispiel hat der Code den Benutzer nach der Eingabe der Markierungen gefragt.
Sie können auch eine benutzerdefinierte Funktion (benutzerdefinierte Funktion) erstellen, die wie jede normale Arbeitsblattfunktion verwendet werden kann und zurückgegeben wird die Note der Schüler.
Nachfolgend finden Sie den Code, mit dem die benutzerdefinierte Formel erstellt wird:
Function GetGrade(StudentMarks As Integer)Dim FinalGrade As StringSelect Case StudentMarksCase Is < 33FinalGrade = "F"Case 33 To 50FinalGrade = "E"Case 51 To 60FinalGrade = "D"Case 60 To 70FinalGrade = "C"Case 70 To 90FinalGrade = "B"Case ElseFinalGrade = "A"End SelectGetGrade = FinalGradeEnd Function
Sobald Sie diesen Code in der haben Modul können Sie die Funktion GetGrade im Arbeitsblatt wie unten gezeigt verwenden.
Beispiel 7 – Überprüfen Sie ODD / EVEN mit Select Case
Nachfolgend finden Sie einen Beispielcode, in dem I. Überprüfen Sie, ob die Zahl in Zelle A1 ungerade oder gerade ist.
Beispiel 8 – Überprüfen auf Wochentag / Wochenende (mehrere Bedingungen)
Sie können auch Groß- / Kleinschreibung auswählen verwenden, um nach mehreren Werten zu suchen der gleiche Fall.
Im folgenden Code wird beispielsweise anhand des aktuellen Datums angezeigt, ob heute ein Wochentag oder ein Wochenende ist (wobei die Wochenendtage Samstag und Sonntag sind).
Sub CheckWeekday()Select Case Weekday(Now)Case 1, 7MsgBox "Today is a Weekend"Case ElseMsgBox "Today is a Weekday"End SelectEnd Sub
Im obigen Code prüfen wir im selben Fall, ob zwei Bedingungen (1 und 7) vorliegen.
Hinweis: Die Wochentagsfunktion gibt 1 für Sonntag und 7 für Samstag zurück.
Beispiel 9 – Verschachtelte Select-Case-Anweisungen
Sie können auch eine Select-Case-Anweisung in eine andere verschachteln.
Nachfolgend finden Sie einen Code, der überprüft, ob ein Tag ein Wochentag ist oder ein Wochenende, und wenn es ein Wochenende ist, wird angezeigt, ob es ein Samstag oder ein Sonntag ist.
Sub CheckWeekday()Select Case Weekday(Now)Case 1, 7 Select Case Weekday(Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End SelectCase ElseMsgBox "Today is a Weekday"End SelectEnd Sub
Im obigen Code: Ich habe den Select Case verschachtelt, um zu überprüfen, ob das Wochenende ein Samstag oder ein Sonntag ist.
Hinweis: Das oben gezeigte Beispiel soll das Konzept erläutern. Dies ist nicht der beste oder praktischste Weg, um Wochentag / Wochenende herauszufinden.
Beispiel 10 – Überprüfen von Textzeichenfolgen mit Groß- / Kleinschreibung auswählen
Sie können bestimmte Zeichenfolgen mit Groß- und Kleinschreibung auswählen und dann überprüfen Führen Sie darauf basierenden Code aus.
Im folgenden Beispielcode wird der Benutzer aufgefordert, seinen Abteilungsnamen einzugeben, und der Name der Person angezeigt, mit der er sich für das Onboarding verbinden soll.
Sub OnboardConnect()Dim Department As StringDepartment = InputBox("Enter Your Department Name")Select Case DepartmentCase "Marketing"MsgBox "Please connect with Bob Raines for Onboarding"Case "Finance"MsgBox "Please connect with Patricia Cruz for Onboarding"Case "HR"MsgBox "Please connect with Oliver Rand for Onboarding"Case "Admin"MsgBox "Please connect with Helen Hume for Onboarding"Case ElseMsgBox "Please connect with Tony Randall for Onboarding"End SelectEnd Sub
Ich hoffe, alle obigen Beispiele waren hilfreich, um das Konzept und die Anwendung von Select Case in Excel VBA zu verstehen.
Die folgenden VBA-Tutorials mögen Ihnen möglicherweise auch:
- Excel VBA-Schleifen – Für Next, Do While, Do Until, für jede.
- Für Next Loop in Excel VBA.
- So zeichnen Sie ein Makro auf Excel.