使用 If...Then...Else 陳述式

您可以使用 If...Then...Else 陳述式執行特定陳述式或區塊陳述式,視條件的值而定。 If...Then...Else 陳述式可以使用無限多層巢狀層級。

不過基於閱讀理解方便,您可能需要使用 Select Case 陳述式,而非多層巢狀的 If...Then...Else 陳述式。

若條件為 True 即執行陳述式。

如果要當條件為 True 時只執行一個陳述式,請使單行語法的 If...Then...Else 陳述式。 下列範例顯示單行語法,省略 Else關鍵字

Sub FixDate() 
 myDate = #2/13/95# 
 If myDate < Now Then myDate = Now 
End Sub

若要執行一行以上的程式碼,您必須使用多行語法。 此語法包含 End If 陳述式,如下列範例所示。

Sub AlertUser(value as Long) 
 If value = 0 Then 
 AlertLabel.ForeColor = "Red" 
 AlertLabel.Font.Bold = True 
 AlertLabel.Font.Italic = True 
 End If 
End Sub

若條件為 True 就執行某些陳述式,而若為 False 則執行其他陳述式。

使用 If...Then...Else 陳述式定義兩個可執行陳述式的區塊:當條件為 True 執行一個區塊,而當條件為 False 時則執行另個區塊。

Sub AlertUser(value as Long) 
 If value = 0 Then 
 AlertLabel.ForeColor = vbRed 
 AlertLabel.Font.Bold = True 
 AlertLabel.Font.Italic = True 
 Else 
 AlertLabel.Forecolor = vbBlack 
 AlertLabel.Font.Bold = False 
 AlertLabel.Font.Italic = False 
 End If 
End Sub

若第一個條件為 False,則測試第二個條件

您可以將 ElseIf 陳述式新增至 If...Then...Else 陳述式來測試當第一個條件為 False 時所使用的第二個條件。 例如,下列函數程序是根據職別計算獎金。 若所有的 IfElseIf 陳述式皆為 False,則執行Else 陳述式後面的陳述式。

Function Bonus(performance, salary) 
 If performance = 1 Then 
 Bonus = salary * 0.1 
 ElseIf performance = 2 Then 
 Bonus = salary * 0.09 
 ElseIf performance = 3 Then 
 Bonus = salary * 0.07 
 Else 
 Bonus = 0 
 End If 
End Function

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應