【发布时间】:2023-03-29 04:45:01
【问题描述】:
我的 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
由于我仍在调试,宏经常在到达关闭和退出命令之前停止,留下一个 Excel 实例和工作簿在后台打开。
我有时可以通过打开任务管理器并结束任务来关闭它们,但我怀疑这是最好的解决方案。我可以在 Word 中编写一个宏来关闭所有打开的工作簿并退出所有(后台)Excel 实例吗?
【问题讨论】:
-
它停止是因为您要停止它还是因为出现错误?如果后者则使用 On Error resume next(或转到
-
您可以使用 GetObject() 附加到打开的 Excel 实例并清理它们。但是,如果有多个实例,这可能会很棘手 - 无法告诉 GetObject 返回哪个实例...
-
Sorceri:在我看到你的答案前几分钟我就想到了这种预防方法,但无论如何我都会支持你!
-
Tim:我不熟悉 GetObject。你能告诉我怎么做吗?
-
如果您的 VB 代码由于未处理的异常而退出,那么所有变量都将被清除,因此您无法在这种情况下存储工作簿名称。最好的办法是按照 ASH 的说明进行操作,并使用错误处理来确保在出现问题时可以恢复。