我只想捕获一次错误处理语句,如果再次失败,则继续下一步。我不知道如何实现这一点,但到目前为止,如果代码继续失败,我可以重新运行代码。理由是,如果文件从不存在,我不想陷入循环。这就是我所拥有的:
....some code
TryAgain:
....
....
If Not FileExists("C:\" & FileName) Then
GoTo TryAgain >>> Only want to run this once if it fails again continue on down with the next section of codes.
End If
....next code stuff....
答案 0 :(得分:2)
.....Dim blnRetry as Boolean
blnRetry =true
TryAgain:
....
....
If Not FileExists("C:\" & FileName) Then
if blnRetry then
blnRetry=false
GoTo TryAgain
end if
End If
答案 1 :(得分:2)
我关于GoTo
的规则是我只在On Error
语句中使用它。考虑使用Do..Loop
和计数器。这是一个例子
Sub Test()
Dim sFile As String
Dim lTryCnt As Long
Const lMAXTRYCNT As Long = 10
Do
sFile = InputBox("Enter file name")
lTryCnt = lTryCnt + 1
Loop Until sFile = "False" Or Len(Dir("C:\" & sFile)) > 0 Or lTryCnt >= lMAXTRYCNT
Debug.Print sFile, lTryCnt
End Sub
如果用户单击输入框上的“取消”,则 sfile = "False"
。如果文件不存在,Len(Dir())
将返回零长度字符串。