如何在VBA中進行內聯錯誤處理例程?我不想把錯誤處理程序放在最後。如何做一個內聯的錯誤處理塊,如Try/Catch
這是CPearson's Error Handling in VBA
Sub testErrHandling()
On Error GoTo ErrHandler:
Debug.print 9/0 'divide by zero error
Worksheets("NewSheet").Activate 'missing worksheet error
'more code here
Exit Sub
ErrHandler:
If Err.Number = 9 Then
' sheet does not exist, so create it
Worksheets.Add.Name = "NewSheet"
' go back to the line of code that caused the problem
Resume
End If
End Sub
但是我正在尋找的東西更像是在VB.net
VBA比VB.NET要舊得多,並且沒有一個做try/catch塊的等效方法。你可以用一個相當奇怪的語法和多個goto來僞造它,但我認爲沒有必要這樣做。 –
@ vba4all你應該查看下面的答案。我爲我的創新感到自豪。如果你願意,你可以稱它很奇怪,但歷史往往超越了反對者的進步。它當然是不錯的代碼恕我直言。 –
我確實看到你在那裏做了什麼,但對我來說'Resume EndTry1'沒有什麼不同,然後說'GoTo'和隨機'goto'是壞習慣,應該不惜一切代價避免。順便說一句,你在這裏做了什麼[已普遍已知多年](http://www.vbforums.com/showthread.php?448403-Classic-VB-Why-do-errors-crash-my-program-and-我怎麼可以停止這種發生)*在SO *上可能沒有提及。 –