【问题标题】:Excel does not completely close when using Workbook.Close使用 Workbook.Close 时 Excel 未完全关闭
【发布时间】:2019-04-01 05:02:36
【问题描述】:

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

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

这是我使用的最后两个命令:

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

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

提前致谢!!!

【问题讨论】:

  • 尝试将Application.Quit 放在 Close 语句之后。
  • @DeanOC 在最后一行,对吗?如果是这样,它没有工作。
  • 它对我有用 @bdkong - 运行 Application.Quit 给了我一个弹出窗口“你想保存吗?”。这可以通过添加 Application.DisplayAlerts = False 来禁用,但我认为你不需要它。
  • 嗯,Application.quit 不起作用是什么意思?它会给出错误吗?它会关闭工作簿,但不会关闭应用程序吗?如果您在“立即”窗口中运行此命令会发生什么?

标签: vba excel


【解决方案1】:

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

改用这个

ActiveWorkbook.Saved = True
Application.Quit

这将阻止 Excel 询问是否保存更改,因为它现在认为它已被保存。一个很好的例子是你的个人宏工作簿,我经常使用我的,并且总是在那里创建或修改代码。如果我关闭警报并且我的个人工作簿中有更改,我会全部丢失。

尽量不要批量修复可能的情况。另一个例子是错误,有一个错误捕获例程并根据需要处理它,而不是笼统地声明 on error resume next。

【讨论】:

  • 我不明白这应该如何解决我对@DeanOC 的回答的问题。首先,我不想保存更改。其次,它没有让我选择保存,因为我已经表示我不想保存它。
  • 它不会保存它,它只会让 excel 误以为它已被保存,所以它会在没有提示的情况下关闭
  • 啊,我明白你在说什么。它仍然无法正常工作:/
  • 发现了我的问题。我有一些代码略高于关闭工作簿的应用程序退出代码。删除了它,它工作正常。
【解决方案2】:

为了确保问题不会一直没有答案,请同时使用这两个建议

(感谢@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

【讨论】:

    【解决方案3】:

    从我的参考资料中删除 atpvbaen.xls 后,application.quit 就可以正常工作了。

    我一直在扯头发 - 直到我意识到我已将 atpvbaen.xls 设置为参考 - 这是另一个还活着的 excel 线程。这个应用程序不需要它,所以我禁用了它。在 VB 编辑器中,Tools => References un-check atpvbaen.xls. 如果我需要它,也许故意关闭它会起作用。

    【讨论】:

      猜你喜欢
      • 2017-01-31
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 2019-12-02
      • 2021-04-14
      • 1970-01-01
      相关资源
      最近更新 更多