可以根据一个条件的值,使用
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
AlertLabel.Forecolor = vbBlack
AlertLabel.Font.Bold = False
AlertLabel.Font.Italic = False
End If
End Sub
如果第一个条件为 False,则测试第二个条件
如果第一个条件为 False ,则可以将 ElseIf 语句添加到 If...Then...Else 语句来测试第二个条件。 例如,下面的 Function 过程将基于工作分类来计算奖金。 如果所有 If 和 ElseIf 语句中的条件都为 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
Bonus = 0
End If
End Function
Visual Basic 概念性主题
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。