三个“If”语句但只有两个“End If”?

时间:2015-11-03 19:53:03

标签: vba

我在旧的VBA代码中发现了一些奇怪的东西。我期待“如果没有其他”,但没有,它编译:

Sub main()

Dim xyz As Integer
xyz = 10 'Not important

If xyz < 20 Then  'If #1

    If xyz <> 11 Then 'If #2

        If xyz = 10 Then _
            MsgBox ("10") 'If #3
    End If  'End if #1
    Else
        MsgBox ("ok")
        Exit Sub
    End If 'End if #2

End Sub   'No end if #3 ?

我不想重复使用该代码。我只是好奇它是如何工作的,没有第三个“结束如果”。

1 个答案:

答案 0 :(得分:2)

If #3实际上是通过使用下划线字符(又名Line Continuation Operator_来构成一行代码。这个操作符允许一行代码包装到编辑器的下一行:

    If xyz = 10 Then _
        MsgBox ("10") 'If #3

实际上是:

    If xyz = 10 Then MsgBox ("10") 'If #3

您可以通过这种方式编写缩写IF语句。老我经常看到这个。新代码。