我遇到了VBA excel中的錯誤處理問題。基本上,我有一種情況,我正在處理同一個錯誤處理塊中的多個錯誤。excel vba錯誤處理
爲了使事情變得非常簡單,讓我們只說:
Sub some_function()
On Error go to step1
step2:
some code which triggers an error
Exit Sub
step1:
Okay, so far so good.
Problem is, that in this block of code can also occur an error
with the same Err.Number but I have to deal with him on other way
which is not specified in this block of code.
go to step 2
End sub
我使用SAP會話連接到SAPGUI,我無法預測這將發生錯誤。如果我能在錯誤處理代碼塊中發現錯誤,我可以解決這種情況。
所以基本上我是盲目的基礎。如果發生錯誤,我嘗試做一些其他的事情,如果它工作正常,但如果第二次發生錯誤(在錯誤處理塊內),它會引發我一個錯誤。
有沒有什麼解決方法?
UPDATE:
只是想大聲。
如果我使用On Error Resume Next語句,並做如下:
On Error Resume next
some code,
line of code that could trigger an error
if Err.Number <> 0 Then
try to handle an error
Err.Clear
End if
line of code that could also trigger an error
If Err.Number <> 0 Then
Try to handle an error
Err.Clear
End If
請問這是否正常?或者有沒有更好的解決方案?
是否有可能在程序中僅使用Resume next語句?我們只是說我們有一個20行的過程,並且我希望在第10行和第15行之間使用Resume Next語句。是否可以啓用和禁用Resume next語句或Error行?
所以一旦你確認err.Number爲什麼不是Err.Clear所以你可以捕獲下一個? – Sorceri
讓錯誤處理塊潛在失敗並且必須第二次發現錯誤通常不是一個好主意。但是,您可以使用「On Error Resume Next」來檢查以前的語句是否成功。 –