使用Workbook.Close时Excel不会完全关闭

时间:2015-07-15 20:31:40

标签: excel vba excel-vba

在我正在运行的宏中,我最后关闭了最后打开的Excel工作簿。当我运行它时,一切都关闭,除了一个没有电子表格的窗口,只有浅蓝色的背景。我使用了错误的命令还是没有办法关闭所有打开的窗口?

Here是一个询问我确切问题的帖子,但解决方案对我不起作用。

以下是我正在使用的最后两个命令:

'
' Closes Populated JD Form
'
    Workbooks(name).Close SaveChanges:=False

'
' Closes Transfer Template
'
    Workbooks("Transfer Template.xlsm").Close SaveChanges:=False

提前致谢!!!

3 个答案:

答案 0 :(得分:7)

不要关闭显示屏提示,因为它会抑制任何真正的问题。

改为使用

ActiveWorkbook.Saved = True
Application.Quit

这将停止Excel以询问是否保存更改,因为它现在认为已经保存了更改。一个很好的例子是你的个人宏工作簿,我使用了很多,我总是在那里创建或修改代码。如果我关闭警报并且我的个人工作簿发生了变化,我就会失去它们。

尽量不要在可能的情况下批量修复可能的情况。另一个例子是错误,有一个错误捕获例程并根据需要处理它,而不是接下来的错误恢复的一揽子声明。

答案 1 :(得分:1)

要确保问题不会得到解答,请同时使用这两项建议

(归功于@DeanOC和@ user1274820)

'Closes Populated JD Form
Workbooks(Name).Close SaveChanges:=False

'Closes Transfer Template
Workbooks("Transfer Template.xlsm").Close SaveChanges:=False

With Application
    .DisplayAlerts = False
    .Quit
End With

答案 2 :(得分:0)

一旦我从参考文献中删除了 atpvbaen.xls ,application.quit就会像广告中那样工作。

我一直在扯头发-直到意识到我已经将atpvbaen.xls设置为参考-这才是另一个excel线程。我不需要此应用程序,因此我将其禁用。在VB编辑器中,如果我需要Tools => References un-check atpvbaen.xls.,则可以有意识地将其关闭。