如何使用vba的嵌套if函数?
在 VBA 中,可以在另一个 IF 语句中使用IF 语句来创建嵌套 IF。简单来说,您可以根据另一个 IF 语句的结果使用 IF 执行测试语句。在这种类型的条件语句中,您需要测试复杂的条件。让我们看一个例子:
在上面的示例中,我们测试两个条件:条件 1 (1 + 1 = 2) 和条件 2 (2 + 2 = 4)。
但由于我们是 IF 语句内的 IF 语句,VBA 将首先测试第一个条件,然后继续执行下一个 IF。
在第二个 IF 中,我们有一个消息框来显示条件是否为 TRUE。
Sub myMacro1() 'first if statement If 1 + 1 = 2 Then 'second if statement If 2 + 2 = 4 Then MsgBox True End If Else MsgBox False End If End Sub
下面是在一个 IF 中使用多个 IF 的示例。
我们之前使用的示例与上面的示例之间存在差异:在此代码中,我们对“Else”使用了嵌套条件。
如果第一个条件不成立,VBA 将跳转到“Else”并测试条件,如果该条件不成立,则继续执行下一个条件。
这样我们总共有四个条件需要测试。
Sub myMacro2() Dim myScore As Single: myScore = Range("A1").Value If myScore >= 80 Then MsgBox "Excellent" Else If myScore >= 60 And myScore < 80 Then MsgBox "Good" Else If myScore >= 40 And myScore < 60 Then MsgBox "Average" Else If myScore < 40 Then MsgBox "Poor" End If End If End If End If End Sub
此嵌套 IF 语句将测试单元格 A1 的分数并相应地显示一个消息框。
VBA 多行嵌套 IF (IF)
您还可以使用两个不同的 IF 来运行两个结果(True 和 False)。
在上面的示例中,正如您所看到的,首先我们有一个条件要测试,如果该条件为 TRUE,那么您还有另一个条件要测试,如果第二个条件为 TRUE,您将收到一个消息框。
如果主要条件为假,您还有另一个条件要测试,如果该条件为真,您将收到一个消息框。
Sub myMacro3() If 1 + 1 = 2 Then If 2 - 1 = 1 Then MsgBox "Condition1 is TRUE." End If Else If 3 - 2 = 1 Then MsgBox "Condition2 is TRUE." End If End If End Sub