VBA:如何在崩溃后关闭Excel.Application

时间:2015-12-10 18:41:06

标签: excel vba ms-word word-vba

我的Word宏使用此代码打开和访问Excel工作簿:

Dim objExcel As New Excel.Application
Dim exWb As Excel.Workbook

Set exWb = objExcel.Workbooks.Open("C:\Folder\Filename.xls")   

 ' Main procedure

exWb.Close
Set exWb = Nothing

objExcel.Quit
Set objExcel = Nothing

由于我还在调试,宏在访问Close和Quit命令之前经常会停止,而Excel的实例和工作簿在后台打开。

我有时可以通过打开任务管理器并结束任务来关闭它们,但我怀疑这是最好的解决方案。我可以在Word中编写一个关闭所有打开的工作簿并退出Excel的所有(后台)实例的宏吗?

1 个答案:

答案 0 :(得分:5)

以下是处理此类异常的传统方式:

Sub MySub()
    Dim objExcel As Excel.Application, exWb As Excel.Workbook
    On Error GoTo Cleanup

    Set objExcel = New Excel.Application
    Set exWb = objExcel.Workbooks.Open("C:\Folder\Filename.xls")

    ' Main procedure

Cleanup:
    If Err.number <> 0 Then MsgBox "Error " & Err.number & ": " & Err.Description
    If Not exWb Is Nothing Then exWb.Close False
    If Not objExcel Is Nothing Then objExcel.Quit
End Sub