VBA中錯誤捕捉的方法主要有兩種
第一種捕捉方法:
1、語法:
On Error GoTo Err_Handle '如果遇到錯誤就跳轉到錯誤處理代碼
語句xxxxx
Exit Sub/Function(如果沒有這條語句,即使沒有錯誤也會執行錯誤處理語句)
Err_Handle: 語句 xxxxxx
2、舉例:
Sub 查找數字() ’本段代碼查找電子表格中有沒有數字12
On Error GoTo Err_Handle
MsgBox Cells.Find(12).Address
Exit Sub '如果沒有這個退出過程語句,會一直執行下去
Err_Handle:
MsgBox ("不存在該數字")
End Sub
(1)、電子表中數據和代碼


(2)、查找12的結果:

(3)、查找13的結果:

第二種捕捉方法:
1、語法:
On Error Resume Next '如果遇到錯誤,不管錯誤,繼續往下執行,但如果嵌套了其他錯誤處理語句,這些錯誤處理語句還是會按照自己規則運行
語句xxxx
On Error GoTo 0 ’結束錯誤捕捉
2、舉例代碼:
Sub 查找數字()
Dim i As Integer
On Error Resume Next '遇到錯誤向下執行
MsgBox Cells.Find(13).Address
On Error GoTo Err_Handle
i = 10 / 0 ’會跳轉到錯誤處理語句,而不會運行 Exit sub
Exit Sub
Err_Handle:
MsgBox i
On Error Resume Next
End Sub
3、結果說明和圖例:
excel表中沒有13這個數字,但是不會報錯也不會有彈窗
在On Error Resume Next 和 Err_Handle之間代碼,還是可以發揮錯誤捕獲功能,因此可以出現下面彈窗:

相關推薦:
excel中怎么利用VBA制作一個登錄數據驗證窗口?
Excel2007怎么開啟信任對VBA工程對象模型的訪問?
excel怎么利用vba實現批量套打快遞單批量打印單據?
新聞熱點
疑難解答