Statt einer komplizierten If-Then-Else-Struktur können Sie Ihre VBA-Programme meistens mit einem übersichtlicheren Select Case schreiben. Lorenz Hölscher zeigt Ihnen, wie Sie Ihren Code damit optimieren.
So ziemlich die erste Struktur, die Sie in einem VBA-Programm eingesetzt haben, dürfte ein If Then Else gewesen sein. Und wahrscheinlich sind Sie auch dabei geblieben. Das ist schade, denn oft geht es besser als mit If(). Wenn Sie so etwas programmieren wie
Function Quartal(datWert As Date) As Integer Dim intMonat As Integer intMonat = Month(datWert) If intMonat = 1 Or IntMonat = 2 Or IntMonat = 3 Then Quartal = 1 ElseIf intMonat = 4 Or IntMonat = 5 Or IntMonat = 6 Then Quartal = 2 ElseIf intMonat = 7 Or IntMonat = 8 Or IntMonat = 9 Then Quartal = 3 ElseIf intMonat = 10 Or IntMonat = 11 Or IntMonat = 12 Then Quartal = 4 End If End Function
Dann lässt sich das mit einer Select Case-Strukur direkt viel kürzer formulieren:
Function Quartal(datWert As Date) As Integer Select Case Month(datWert) Case 1, 2, 3: Quartal = 1 Case 4 to 6: Quartal = 2 Case 7 to 9: Quartal = 3 Case Is > 9 And Is <= 12: Quartal = 4 Case 13: MsgBox "Das kann ja wohl nicht sein!" Case Else MsgBox "Dieser Fall tritt auch nicht ein." End Select End Function
Wie Sie bemerkt haben, darf hinter einem Case wie bei Case 13 ein einzelner Wert stehen. Um ein Or aus der If-Konstruktion abzubilden, dürfen wie bei Case 1, 2, 3 auch mehrere Werte nacheinander durch Komma getrennt stehen.
In diesem Fall sind es sowieso aufeinander folgende Zahlen. Daher können Sie wie bei Case 4 to 6 auch direkt einen Zahlenbereich nennen. Beide Methoden dürfen wie bei Case 10, 14 to 20, 30 auch gemischt werden.
Für den Größer/Kleiner-Vergleich gibt es die reservierte Variable Is (die nicht als Operator wie If x Is Nothing missverstanden werden darf), wie Sie im Beispiel Case Is > 9 And Is <= 12 sehen.
Mitglied werden
Als zahlendes Mitglied von akademie.de haben Sie vollen Zugriff auf alle Inhalte und können alle PDF-Dateien, Checklisten, Mustervorlagen und Anwendungen herunterladen.
Sind Sie sich noch unsicher? Dann wählen Sie die Option “akademie.de kostenlos testen”. So können Sie sich 14 Tage in Ruhe umschauen. Downloads stehen Ihnen in dieser Zeit nicht zur Verfügung. Gefällt Ihnen akademie.de nicht, reicht ein formloser Widerruf per E-Mail innerhalb der ersten 14 Tage. Es entstehen für Sie keine Kosten. Widerrufen Sie nicht, erhalten Sie nach Ablauf von 14 Tagen vollen Zugriff und der Mitgliedsbeitrag wird abgebucht.
Ich bin bereits Mitglied
Code lässt sich nicht kompilieren
Case Is > 9 And Is <= 12: Quartal = 4
Diese Zeile lässt sich nicht kompilieren , Syntaxfehler
Jedenfalls bei mir mit Excel 2010 und 2016