我試圖趕上與VBA一些錯誤,我發現this tutorial,我想用GoTo
方法就像在下面的例子中捕捉錯誤:錯誤處理VBA:什麼時候沒有錯誤?
Sub mySub
On Error GoTo myHandler:
Workbooks.Open("myWorkbook")
'
' Some Code
'
myHandler:
MsgBox "EROOR !"
End Sub
的問題是,即使沒有錯誤,myHandler
部分始終執行! 我發現this discussion但作爲解釋所提出的答案不能解決問題
我嘗試添加一個Exit Sub
聲明:
Sub mySub
On Error GoTo myHandler:
Workbooks.Open("myWorkbook")
Exit Sub
'
' Some Code
'
myHandler:
MsgBox "EROOR !"
End Sub
在它退出方法,即使沒有錯誤的情況。 我也試過:
Sub mySub
On Error GoTo myHandler:
Workbooks.Open("myWorkbook")
'
' Some Code
'
myHandler:
MsgBox "EROOR !"
Exit Sub
End Sub
但還是同樣的問題,將myHandler即使沒有錯誤執行。
你可以添加'On Error Goto 0'這行嗎?所以OP知道這是一個很好的做法重置錯誤重定向... Upvoted :) – Marco 2012-04-13 13:02:33
@Marco你的意思是err.Clear?這是VBA。 – Fionnuala 2012-04-13 13:05:14
@Marco我應該重置它後每個捕捉集團? 'On Error GoTo myHandler: 工作簿。打開(「我的工作簿」) On Error GoTo 0' – M3HD1 2012-04-13 13:07:03