使用 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,则测试第二个条件

如果第一个条件为 False ,则可以将 ElseIf 语句添加到 If...Then...Else 语句来测试第二个条件。 例如,下面的 Function 过程将基于工作分类来计算奖金。 如果所有 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。