excel - 带有多个操作的单行语句

我应该能够谷歌到这个问题,但是,我找不到我想要了解的东西,

我想检查文件是否存在, 如果没有文件,应该弹出MessageBox,而且VBA应该退出子进程。


If Dir("C:file.txt", vbDirectory) ="" Then 


 MsgBox"File doesn't exist"


 Exit Sub


End If



它可以工作,我只想知道是否可以在一行声明中做到这个?当有多个事情发生时,VBA是否允许这样做? 此代码不适用于(语法错误):


If Dir("C:file.txt", vbDirectory) ="" Then MsgBox"File doesn't exist" And Exit Sub



时间:

绝对可以!


If Dir("C:file.txt", vbDirectory) ="" Then MsgBox"File doesn't exist" : Exit Sub



  • If语句已经支持单行语法
    简单来说,这意味着,我们可以:

  • 
    If {boolean-expression} Then
    
    
     {execution}
    
    
    End If
    
    
    
    
  • 
    If {boolean-expression} Then {execution}
    
    
    
    
    • 在单行语法中注意到第二个选项缺乏 End If因为它完全省略了,
    • 还要记住,执行块只能包含一个语句
  • 接下来,将代码连接在一起的方法是使用 :,它作为编译器中的一个新行。

    在变量声明中这是相当常见的做法:

    
    Dim x As Integer: x = 42
    
    
    
    

现在,让我们一起应用这些步骤:

原始代码


If Dir("C:file.txt", vbDirectory) ="" Then 


 MsgBox"File doesn't exist"


 Exit Sub


End If



应用单行If语法


If Dir("C:file.txt", vbDirectory) ="" Then MsgBox"File Doesn't Exist"


Exit Sub



使用:符号将 Exit Sub放入我们的单行If


If Dir("C:file.txt", vbDirectory) ="" Then MsgBox"File Doesn't Exist" : Exit Sub



在VBA中你可以执行甚至超过两行代码,只需在一条指令和另一条指令之间添加 :这是完全合法的:


If True Then MsgBox"True - Line 1": MsgBox"True - Line 2": Exit Sub




If Dir("C:file.txt", vbDirectory) ="" Then : MsgBox"File doesn't exist" : Exit Sub



应该在 Then 和你的动作块之间添加 :

...