假设我在Access中有一些VBA代码,无论出于何种原因使用excel。有时我无法正确关闭文件。
代码(我认为)应该看起来像这样:
WBO.Close savechanges:=True
Set WBO = Nothing
XLO.Application.Quit
Set XLO = Nothing
rs.Close
db.Close
此处XLO是excel对象,WBO是工作簿对象,rs是DAO记录集,db是DAO数据库。即使物理excel文件关闭,我的系统上仍然会出现“EXCEL.EXE”进程,这使我无法连续两次运行我的程序。有谁知道为什么会这样?
修改
我取出了rs.Close
然后db.Close
行,因为我决定手动将我正在使用的数据从Access导出(有太多的行和列来有效地复制每个单元格)。但是,这并没有改变手头的问题。
谢谢,
Jesse Smothermon
答案 0 :(得分:3)
没有实际的Excel
对象。 Application
是顶级对象,但Application
对象具有Application
属性,实际上指向“指定对象的创建者”。因此,尝试退出XLO.Application
将无法达到您的预期。
假设XLO
的类型为Excel.Application
,请尝试XLO.Quit
代替XLO.Application.Quit
答案 1 :(得分:0)
为什么不呢:
application.displayalerts = false
WBO.save (or saveas whatever it matters)
WBO.close
set WBO = nothing
我没有看到内存问题......
答案 2 :(得分:0)
参考这个答案 It worked for me.
Dim sKill As String
sKill = "TASKKILL /F /IM msaccess.exe"
Shell sKill, vbHide
如果可行,请在链接中使用^标记答案,而不是我的。