首页  /  开服日历  /  使用 If...Then...Else 语句 (VBA)

使用 If...Then...Else 语句 (VBA)

开服日历 5469

可以根据一个条件的值,使用 If...Then...Else 语句运行一个特定的语句或一个语句块。 可以根据需要将 If...Then...Else 语句嵌套到多个级别。

但为了实现易读性,需要使用一个 Select Case 语句,而不是使用多级别的嵌入 If...Then...Else 语句。

如果条件为 True,则运行语句

如要在条件为 True 时仅运行一个语句,请使用 If...Then...Else 语句的单行语法。 以下示例演示单行语法,省略 Else关键字 (keyword) 。

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 过程将基于工作分类来计算奖金。 如果所有 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

Else

Bonus = 0

End If

End Function

另请参阅

Visual Basic 概念性主题

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。