Führt eine bedingte Gruppe von Anweisungen aus, abhängig vom Wert eines Ausdrucks.
Syntax
If condition Then statements [Else elsestatements] Sie können auch die folgende Blocksyntax verwenden:
If condition Then [statements] [ElseIf condition-n Then [elseifstatements]] . . . [Else [elsestatements]] End If
Argumente:
Condition: Ein gültiger Ausdruck. Ein numerischer oder Zeichenfolgeausdruck, der als "True" oder "False" ausgewertet wird. Wenn "condition" Null ist, wird die Bedingung als "False" behandelt.
Statements: Eine oder mehrere durch Doppelpunkte getrennte Anweisungen. Wird ausgeführt, wenn die Bedingung "True" ist.
condition-n: Entspricht der Bedingung.
Elseifstatements: Eine oder mehrere Anweisungen, die ausgeführt werden, wenn das zugehörige "condition-n"-Argument auf "True" gesetzt ist.
Elsestatements: Eine oder mehrere Anweisungen, die ausgeführt werden, wenn weder eine vorherige Bedingung noch "condition-n" auf "True" gesetzt ist.
Anmerkungen
Sie können das einzeilige Format (erste Syntax) für kurze, einfache Tests verwenden. Das Blockformat (zweite Syntax) bietet jedoch mehr Struktur und Flexibilität als das einzeilige Format und ist in der Regel leichter zu lesen, zu warten und zu debuggen. Das einzeilige Format wird zwar unterstützt, es wird jedoch empfohlen, das Blockformat zu verwenden.
Note:
Die einzeilige Syntax wird zwar unterstützt, aber nicht empfohlen.
Mit der einzeiligen Syntax können mehrere Anweisungen als Ergebnis einer If...Then-Entscheidung ausgeführt werden. Sie müssen jedoch alle in derselben Zeile stehen und durch Doppelpunkte getrennt sein, wie in der folgenden Anweisung:
Dim A,B,C A=11 If A > 10 Then A = A + 1 : B = B + A : C = C + B
Beim Ausführen eines If-Blocks (zweite Syntax) wird die Bedingung geprüft. Wenn die Bedingung "True" ist, werden die auf "Then" folgenden Anweisungen ausgeführt. Wenn die Bedingung "False" ist, werden alle vorhandenen ElseIf-Klauseln nacheinander ausgewertet. Wenn eine Bedingung "True" ist, werden die auf die zugeordnete "Then"-Anweisung folgenden Anweisungen ausgeführt. Wenn keine der ElseIf-Anweisungen "True" ist (oder keine ElseIf-Klauseln vorhanden sind), werden die auf "Else" folgenden Anweisungen ausgeführt. Nach dem Ausführen der auf "Then" oder "Else" folgenden Anweisungen wird die Ausführung mit der auf "End If" folgenden Anweisung fortgesetzt.
Die Klauseln "Else" und "ElseIf" sind optional. Sie können beliebig viele ElseIf-Anweisungen in einen If-Block einfügen. Nach der Else-Klausel dürfen jedoch keine ElseIf-Anweisungen vorkommen. If-Blockanweisungen dürfen verschachtelt (d.h ineinander gesetzt) werden.
Das folgende Then-Schlüsselwort wird untersucht, um festzustellen, ob eine Anweisung ein If-Block ist. Wenn nach "Then" etwas anderes als ein Kommentar in derselben Zeile steht, wird die Anweisung als einzeilige If-Anweisung behandelt.
Eine If-Blockanweisung muss die erste Anweisung in einer Zeile sein. Der If-Block muss mit einer End If-Anweisung enden.
Beispiel: Bedingte Anweisungen
If-Anweisung (Nur eine einzige Anweisung ausführen, wenn eine Bedingung "True" ist)
Dim i, strVal i=10 If i=10 Then strVal = "Hello"
Damit mehrere Anweisungen ausgeführt werden, wenn die If-Bedingung "True" ist, muss jede Anweisung in einer separaten Zeile stehen, und der Block muss mit dem Schlüsselwort "End If"enden:
Dim i, strVal
i=10
If i=10 Then
If i=10 Then strVal = "Hello"
i = i+1
End If
If...Then...Else-Anweisung: Eine von zwei Zeilengruppen auswählen, die ausgeführt werden soll.
Eine Anweisung wird ausgeführt, wenn eine Bedingung "True" ist, und eine andere Anweisung "Else" wird ausgeführt, wenn die Bedingung nicht "True" ist. Sie müssen das Schlüsselwort "Else" hinzufügen.
Dim i
Dim strVal
i=5
If i=10 Then
If i=10 Then strVal = "Hello"
i = i+1
Else
i= i+2
strVal = "world"
End If
If...Then...ElseIf...Else-Anweisung: Eine von mehreren Zeilengruppen auswählen, die ausgeführt werden soll.
Eine Anweisung wird ausgeführt, wenn eine Bedingung "True" ist, und eine weitere Anweisung wird ausgeführt, wenn die erste Bedingung nicht "True" und eine andere Bedingung "True" ist. Sie müssen das Schlüsselwort "ElseIf" für jede weitere Bedingung hinzufügen und am Ende das Schlüsselwort "Else" angeben:
Dim i
Dim strVal
i=14
If i=10 Then
If i=10 Then strVal = "Hello"
i = i+1
Elseif i=11 Then
i= i+2
strVal = "world"
Else
i= i+3
strVal = "world"
End If