Excel VBA Select Case-Anweisung - mit Beispielen erklärt

Excel VBA verfügt über das IF Then Else-Konstrukt, mit dem Sie mehrere Bedingungen analysieren und Codes basierend auf diesen Bedingungen ausführen können.

Ein weiteres ähnliches Konstrukt, mit dem Sie nach mehreren Bedingungen suchen können, ist das GEHÄUSE AUSWÄHLEN Stellungnahme.

Select Case ist nützlich, wenn Sie drei oder mehr Bedingungen überprüfen möchten. Sie können dies auch mit zwei Bedingungen verwenden (aber ich denke, If Then Else ist in diesen Fällen einfacher zu verwenden).

Ein einfaches Beispiel, bei dem die Select Case-Anweisung nützlich ist, wenn Sie die Note eines Schülers basierend auf den von ihm erzielten Noten erhalten möchten (wird später in diesem Tutorial als Beispiel behandelt).

Hinweis: Alle in diesem Tutorial behandelten Beispielcodes sollen in einem Modul in VBA platziert werden.

Case-Syntax auswählen

Unten ist die Syntax von Select Case in Excel VBA:

Select Case Test_Expression Case Value_1 Codeblock wenn Test_Expression = Value_1 Case Value_2 Codeblock wenn Test_Expression = Value_2 Case Value_3 Codeblock wenn Test_Expression = Value_3 Case Else Codeblock wenn keine der Fallbedingungen erfüllt ist End Select
  • Test_Expression: Dies ist der Ausdruck, dessen Wert wir anhand verschiedener Fälle analysieren (besser erklärt mit den Beispielen unten).
  • 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 gegebene Bedingung ausgeführt.

Für jede Select Case-Anweisung, die Sie verwenden, müssen Sie die End Select-Anweisung verwenden.

Notiz: Sobald eine Bedingung erfüllt ist, verlässt VBA das Select-Case-Konstrukt. Wenn Sie also fünf Bedingungen haben und die zweite Bedingung erfüllt ist, würde VBA Select Case beenden - und die restlichen Bedingungen werden nicht getestet.

Fallbeispiele auswählen

Um nun besser zu verstehen, wie die Select Case-Anweisung in VBA verwendet wird, lassen Sie uns einige Beispiele durchgehen.

Beachten Sie, dass die meisten Beispiele in diesem Tutorial das Konzept erläutern sollen. Dies kann der beste Weg sein, um die Arbeit zu erledigen, oder auch nicht.

Beginnen wir mit einem einfachen Beispiel, wie wir mit Select Case nach Bedingungen suchen können.

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 Zahl an.

Sub CheckNumber() Dim UserInput As Integer UserInput = InputBox("Bitte geben Sie eine Zahl zwischen 1 und 5 ein") Select Case UserInput Case 1 MsgBox "Sie haben 1 eingegeben" Case 2 MsgBox "Sie haben 2 eingegeben" Case 3 MsgBox "Sie haben 3 eingegeben" Fall 4 MsgBox "Sie haben 4 eingegeben" Fall 5 MsgBox "Sie haben 5 eingegeben" End Select End 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, würde dies nichts tun. Aber wie bereits erwähnt, möchte ich hier zeigen, wie Select Case funktioniert.

Beispiel 2 – Verwendung 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 Integer UserInput = InputBox("Bitte geben Sie eine Zahl ein") Select Case UserInput Case Is = 100 MsgBox "Sie haben eine Zahl größer (oder gleich) 100 eingegeben" End Select End Sub

Beispiel 3 – Verwenden von Case Else, um alle zu erfassen

Im obigen Beispiel habe ich zwei Bedingungen verwendet (weniger als 100 oder größer oder gleich 100).

Anstelle des zweiten Falls mit einer 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.

Unten ist ein Beispielcode, in dem ich Case Else verwendet habe:

Sub CheckNumber() Dim UserInput As Integer UserInput = InputBox("Bitte geben Sie eine Zahl ein") Select Case UserInput Case Is < 100 MsgBox "Sie haben eine Zahl kleiner als 100 eingegeben" Case Else MsgBox "Sie haben eine Zahl größer als (oder gleich) eingegeben ) 100" End Select End Sub

Beispiel 4 – Verwenden eines Zahlenbereichs

In Select Case können Sie auch nach einem Nummernbereich suchen.

Der folgende Code fordert eine Eingabe an und zeigt ein Meldungsfeld basierend auf dem Wert an.

Sub CheckNumber() Dim UserInput As Integer UserInput = InputBox("Bitte geben Sie eine Zahl zwischen 1 und 100 ein") Select Case UserInput Case 1 To 25 MsgBox "Sie haben eine Zahl kleiner als 25 eingegeben" Case 26 To 50 MsgBox "Sie haben eine Zahl eingegeben zwischen 26 und 50" Case 51 bis 75 MsgBox "Sie haben eine Zahl zwischen 51 und 75 eingegeben" Case 75 bis 100 MsgBox "Sie haben eine Zahl von mehr als 75 eingegeben" End Select End Sub

Beispiel 5 – Erhalten Sie die Note basierend auf den erzielten Noten

Bisher haben wir grundlegende Beispiele gesehen (die in der Praxis nicht wirklich nützlich sind).

Hier ist ein Beispiel, das einem realen Beispiel näher kommt, in dem Sie Groß-/Kleinschreibung in Excel VBA verwenden können.

Der folgende Code gibt Ihnen die Note, die ein Schüler basierend auf den Noten in einer Prüfung erhält.

Sub Grade() Dim StudentMarks As Integer Dim FinalGrade As String StudentMarks = InputBox("Enter Marks") Case auswählen StudentMarks Case Is < 33 FinalGrade = "F" Case 33 To 50 FinalGrade = "E" Case 51 To 60 FinalGrade = "D " Fall 60 bis 70 FinalGrade = "C" Fall 70 bis 90 FinalGrade = "B" Fall 90 bis 100 FinalGrade = "A" End Select MsgBox "The Grade is " & FinalGrade End Sub

Der obige Code fragt den Benutzer nach den Noten und zeigt darauf basierend eine Meldungsbox mit der Endnote an.

Im obigen Code habe ich alle Bedingungen angegeben - für die Noten 0 - 100.

Eine andere Möglichkeit, Select Case zu verwenden, besteht darin, am Ende einen Case Else zu verwenden. 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 Grade-Codes mit einer geringfügigen Änderung. Am Ende hat es eine Case else-Anweisung, die ausgeführt wird, wenn keine der oben genannten Bedingungen zutrifft.

Sub CheckOddEven() Dim StudentMarks As Integer Dim FinalGrade As String StudentMarks = InputBox("Enter Marks") Case auswählen StudentMarks Case Is < 33 FinalGrade = "F" Case 33 To 50 FinalGrade = "E" Case 51 To 60 FinalGrade = "D " Fall 60 bis 70 FinalGrade = "C" Fall 70 bis 90 FinalGrade = "B" Fall Else FinalGrade = "A" End Select MsgBox "The Grade is " & FinalGrade End Sub

Beispiel 6 – Erstellen einer benutzerdefinierten Funktion (UDF) mit Select Case

Im obigen Beispiel hat der Code den Benutzer nach der Markierungseingabe gefragt.

Sie können auch eine benutzerdefinierte Funktion (benutzerdefinierte Funktion) erstellen, die wie jede normale Arbeitsblattfunktion verwendet werden kann und die die Note der Schüler zurückgibt.

Unten ist der Code, der die benutzerdefinierte Formel erstellt:

Funktion GetGrade(StudentMarks As Integer) Dim FinalGrade As String Select Case StudentMarks Case Is < 33 FinalGrade = "F" Case 33 To 50 FinalGrade = "E" Case 51 To 60 FinalGrade = "D" Case 60 To 70 FinalGrade = "C" Fall 70 bis 90 FinalGrade = "B" Fall Else FinalGrade = "A" End Select GetGrade = FinalGrade End Function

Sobald Sie diesen Code im Modul haben, können Sie die Funktion GetGrade im Arbeitsblatt wie unten gezeigt verwenden.

Beispiel 7 - Überprüfen Sie ODD / EVEN mit Select Case

Unten ist ein Beispielcode, in dem ich überprüfe, ob die Zahl in Zelle A1 ungerade oder gerade ist.

Sub CheckOddEven() CheckValue = Range("A1").Value Select Case (CheckValue Mod 2) = 0 Case True MsgBox "Die Zahl ist gerade" Case False MsgBox "Die Zahl ist ungerade" End Select End Sub

Beispiel 8 – Prüfung auf Wochentag/Wochenende (mehrere Bedingungen)

Sie können auch Groß-/Kleinschreibung auswählen verwenden, um nach mehreren Werten in derselben Groß-/Kleinschreibung zu suchen.

Der folgende Code verwendet beispielsweise das aktuelle Datum, um anzuzeigen, ob heute ein Wochentag oder ein Wochenende ist (wobei die Wochenendtage Samstag und Sonntag sind).

Sub CheckWeekday() Case auswählen Wochentag (jetzt) ​​Case 1, 7 MsgBox "Heute ist ein Wochenende" Case Else MsgBox "Heute ist ein Wochentag" End Select End Sub

Im obigen Code prüfen wir zwei Bedingungen (1 und 7) im gleichen Fall.

Hinweis: Die Wochentagfunktion 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.

Unten ist ein Code, der überprüft, ob ein Tag ein Wochentag oder ein Wochenende ist, und wenn es ein Wochenende ist, wird angezeigt, ob es ein Samstag oder ein Sonntag ist.

Sub CheckWeekday() Fall auswählen Wochentag (jetzt) ​​Fall 1, 7 Fall auswählen Wochentag (jetzt) ​​Fall 1 MsgBox "Heute ist Sonntag" Fall Else MsgBox "Heute ist Samstag" Ende Fall auswählen Else MsgBox "Heute ist ein Wochentag" Ende Auswählen Ende Sub

Im obigen Code habe ich 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 die beste oder praktischste Methode, um den Wochentag/das Wochenende herauszufinden.

Beispiel 10 – Prüfen der Textzeichenfolge mit Select Case

Sie können bestimmte Zeichenfolgen mit Select Case überprüfen und dann darauf basierenden Code ausführen.

Im folgenden Beispielcode wird der Benutzer aufgefordert, seinen Abteilungsnamen einzugeben, und zeigt den Namen der Person an, mit der er sich für das Onboarding verbinden sollte.

Sub OnboardConnect() Dim Department As String Department = InputBox("Enter Your Department Name") Select Case Department Case "Marketing" MsgBox "Bitte verbinden Sie sich mit Bob Raines für das Onboarding" Case "Finance" MsgBox "Bitte verbinden Sie sich mit Patricia Cruz für das Onboarding" Fall "HR" MsgBox "Bitte verbinden Sie sich mit Oliver Rand für das Onboarding" Fall "Admin" MsgBox "Bitte verbinden Sie sich mit Helen Hume für das Onboarding" Fall Else MsgBox "Bitte verbinden Sie sich mit Tony Randall für das Onboarding" End Select End 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 könnten Ihnen auch gefallen:

  • Excel VBA-Schleifen - Für Next, Do While, Do Bis, For Each.
  • Für die nächste Schleife in Excel VBA.
  • So zeichnen Sie ein Makro in Excel auf.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave