VBA关闭Excel文件

时间:2011-08-23 00:43:11

标签: excel file vba ms-access

假设我在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

3 个答案:

答案 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

如果可行,请在链接中使用^标记答案,而不是我的。