我确实应该可以在Google上搜索到它,但是我找不到我想知道的东西。
我要检查文件是否存在。如果不是,则应弹出一个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
答案 0 :(得分:14)
您绝对可以!
If Dir("C:\file.txt", vbDirectory) = "" Then MsgBox "File doesn't exist" : Exit Sub
答案 1 :(得分:11)
If
语句does already support single-line syntax。
简单来说,这意味着我们可以:
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
答案 2 :(得分:4)
在VBA中,您可以在一条指令中执行两行以上的代码,只需在一条指令和另一条指令之间添加:
!这是完全合法的:
If True Then MsgBox "True - Line 1": MsgBox "True - Line 2": Exit Sub
答案 3 :(得分:1)
If Dir("C:\file.txt", vbDirectory) = "" Then : MsgBox "File doesn't exist" : End If
我没有足够的声誉来解决以上问题。还应在:
和您的操作块之间添加Then
。
答案 4 :(得分:0)
如果需要其他粒子,则切线为:
If i Mod 2 <> 0 Then debug.print "Odd" Else: debug.print "Even"