为什么这个 IF 语句不需要 End IF (说明:此为一个问题标题,不需要回答)

3
我将使用以下代码片段来循环遍历文件夹中的文件。它有一个简单的If语句,用于检查文件夹中是否有文件,如果没有则退出。我已经意识到,在不需要End If的情况下也可以正确编译。然而,我想添加一个msgbox来解释为什么已经退出,因此我需要在我的代码中引入一个End If
为什么要这样做? 原始代码:
If Len(strfilename) = 0 Then Exit Sub
    Do Until strfilename = ""
       'Do some stuff
    strfilename = Dir()
Loop

使用 MsgBox 函数

If Len(strfilename) = 0 Then
    MsgBox ("No Files Found")
    Exit Sub
Else
    Do Until strfilename = ""
        'Do some stuff
    strfilename = Dir()
    Loop
End If
1个回答

8

有一种单行if的形式:

if (expr) then X

其中X必须在同一上,这对于单个表达式非常方便:

if 1=1 then exit sub

或者说,使用奇怪但合法的(使用续行符号)方式。
if 1 = 1 Then MsgBox ("No Files Found"): Exit Sub

更好的写法是使用更易读的块格式,需要一个end if来告诉编译器if块何时结束:

if 1 = 1 Then 
   MsgBox ("No Files Found")
   Exit Sub
end if

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接