我想弄清楚是否有可能爲我的所有潛艇有一個單一的錯誤處理程序?每當出現錯誤時我處於需要退出子項的狀態,並跳過所有下一個子項。在VBA中使用錯誤處理
Sub Runall()
Call A
Call B
Call C
Call D
End sub
現在,如果在一個子一個錯誤,我不希望運行B,C,d和同樣的事情B.應從何處我的,我把我的錯誤處理程序?我實際上非常困惑,因爲如何使用EXIT語句很重要。請指教。
我想弄清楚是否有可能爲我的所有潛艇有一個單一的錯誤處理程序?每當出現錯誤時我處於需要退出子項的狀態,並跳過所有下一個子項。在VBA中使用錯誤處理
Sub Runall()
Call A
Call B
Call C
Call D
End sub
現在,如果在一個子一個錯誤,我不希望運行B,C,d和同樣的事情B.應從何處我的,我把我的錯誤處理程序?我實際上非常困惑,因爲如何使用EXIT語句很重要。請指教。
試試這個
Sub Runall()
Call A
On Error GoTo Errhandler
Call B
On Error GoTo Errhandler
Call C
On Error GoTo Errhandler
Call D
On Error GoTo Errhandler
' Exit the macro so that the error handler is not executed.
Exit Sub
Errhandler:
' If an error occurs, display a message and end the macro.
MsgBox "An error has occurred. The macro will end."
End sub
我可以在哪裏放置錯誤處理程序。對不起,但我創建了某些新的工作表,我需要刪除任何錯誤的情況下謝謝。 – Jain
這裏是我會怎麼做。
在呼叫子中包含On Error GoTo Handler:
。
一旦這些潛艇在 will take over引發錯誤On Error
(監守如果子缺失的錯誤處理程序,它會嘗試使用電話子的錯誤處理程序),並與其GoTo
是將跳過一切,直到它看到Handler
。
請記住,在Handler
之前,您需要包含Exit Sub
或VBA中的Handler
將被使用,無論您是否有錯誤。
這裏是一個 「failling」 例如:
Sub RunAll()
On Error GoTo Handler
Call A
Call B
Exit Sub
Handler:
Debug.Print "testing"
End Sub
的[本](A
Sub A()
Dim fail As Integer
fail = 1/1
End Sub
乙
Sub B()
Dim fail As Integer
fail = 1/0
End Sub
可能的複製http://stackoverflow.com/questions/14940697/Excel的VBA的全局錯誤處理)。你能檢查接受的答案,看看它是否適合你? – Ioannis