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不会做你认为应该的。

假定XLOExcel.Applicationtypes,那么只需尝试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 

如果可行,在链接上标记答案,而不是我的。