在 Excel VBA 中,我打开一个 Word 应用程序和一个文档。我想确保文档和 Word 在最后关闭,即使出现错误。
我创建了一个错误处理程序On Error GoTo ErrorHandler,它可以工作。但是objDoc.Close当文档没有打开时失败(运行时错误 424),objWord.Quit虽然我调用了On Error Resume Next.
为什么On Error Resume Next不在那里工作?
(在 VBA 选项中,错误捕获设置为“在未处理的错误时中断”。)
Sub test()
On Error GoTo ErrorHandler
' Open doc in Word
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
Set objDoc = objWord.Documents.Open("not a valid doc.docx")
....
' Save and exit
objDoc.Save
objDoc.Close
objWord.Quit
Exit Sub
ErrorHandler:
MsgBox "Error " & Err.Number & vbLf & Err.Description
On Error Resume Next
' Exit
objDoc.Close SaveChanges:=False
objWord.Quit
On Error GoTo 0
End Sub