VBAclosuresExcel文件
假设我在Access中有一些使用excel的VBA代码。 有时我无法正确closures文件。
代码(我认为)应该看起来像这样:
WBO.Close savechanges:=True Set WBO = Nothing XLO.Application.Quit Set XLO = Nothing rs.Close db.Close
这里XLO是一个excel对象,WBO是一个工作簿对象,rs是一个DAOlogging集,db是一个DAO数据库。 即使物理excel文件closures仍然有一个“EXCEL.EXE”进程发生在我的系统上,这阻止了我连续运行我的程序两次。 有谁知道为什么发生这种情况?
编辑
我拿出rs.Close
,然后db.Close
行,因为我决定手动导出我使用从Access到Excel的数据(有太多的行和列来有效地复制每个单元格)。 但是,这并没有改变手头的问题。
谢谢,
Jesse Smothermon
没有一个实际的Excel
对象。 Application
是顶层对象,但Application
对象具有实际指向“指定对象的创build者”的Application
属性。 所以试图退出XLO.Application
不会做你认为应该的。
假定XLO
是Excel.Application
types,那么只需尝试XLO.Quit
而不是XLO.Application.Quit
为什么不只是:
application.displayalerts = false WBO.save (or saveas whatever it matters) WBO.close set WBO = nothing
我没有看到那个记忆问题…
参考这个答案。
它为我工作。
Dim sKill As String sKill = "TASKKILL /F /IM msaccess.exe" Shell sKill, vbHide
如果可行,在链接上标记答案,而不是我的。