Excel 不会提示在 Application.Quit 上保存未保存的文件

Posted

技术标签:

【中文标题】Excel 不会提示在 Application.Quit 上保存未保存的文件【英文标题】:Excel doesn't prompt to save unsaved files on Application.Quit 【发布时间】:2011-12-08 22:42:04 【问题描述】:

在 Excel VBA 中使用 Application.Quit 应该会启动默认退出过程,其中包括提示用户保存当前在应用程序中打开的所有未保存的文档。

在跨多个系统(Excel 2010 32 位、Windows 7 64 位)进行测试时,我发现有些系统会提示用户保存,而有些系统则不会。

我们检查了整个系统的设置(包括启用所有宏和禁用受保护的视图)但无济于事。即使在不同系统上使用相同的设置也不会强制一个系统在 Excel 关闭之前提示用户保存他们的工作。

就好像 Application.DisplayAlerts 已设置为 False,但事实并非如此。我们甚至尝试了以下代码行:

Application.DisplayAlerts = True
Application.Quit

在某些系统上,即使这样仍然不会提示用户保存未保存的文档。 Excel 突然关闭。

非常感谢任何解决此问题的帮助。

谢谢!

响应 cmets 的更新:

我仔细检查了所有打开和未保存的工作簿的 Workbooks.Saved 属性,在 Application.Quit 之前它是错误的,所以这一定不是问题。

我也刚刚进行了一个简单的测试。我打开了一个工作簿,对其进行了编辑并在 VBA 的即时窗口中执行了 Application.Quit。 Excel 退出而不提示保存未保存的文件。这表明这与我的 Excel 设置有关,与我的应用程序无关。

【问题讨论】:

可以设置ActiveWorkbook.Saved = True 或类似的东西吗? 在退出之前我会添加这一行 ActiveWorkbook.Saved = False (以测试单个工作簿 - 如果这可行,则需要更新代码以循环所有打开的工作簿并更改它们的保存状态)。 但这显然是一个 hack,因为保存消息应该在没有代码的情况下标记,我以前没有遇到过,我会进一步查看其他 Excel 论坛,看看是否有其他人经历过。 您是否可能在未更改工作簿的情况下退出?因为无论DisplayAlerts 的状态如何,如果您没有更改任何内容,Excel 都不会提示您保存。 【参考方案1】:

禁用 Solver 插件会返回正常行为。

【讨论】:

感谢收尾。出于好奇,您是如何确定是这种情况 - 反复试验,或者您是否在其他地方找到了论坛答案? 我打算停用我自己的加载项,看看它是否会导致问题。我注意到加载项列表中的 Solver 并尝试禁用它并解决了问题。运气的中风。 :)【参考方案2】:

我尝试了相同的方法来禁用 Solver Add-In,但没有奏效。我决定也尝试禁用 Hstbar 加载项。他们俩都禁用了提示符再次开始工作。

【讨论】:

【参考方案3】:

我正在使用以下代码保存工作簿并关闭应用程序

ActiveWorkbook.Save
Application.Quit

但在崩溃后,excel 要求我禁用求解器。禁用求解器后,Excel 无法识别保存命令,尽管有保存命令,它仍继续询问我是否要保存工作簿。

然后我发现这个bug可以通过再次启用求解器来解决...

很奇怪

【讨论】:

以上是关于Excel 不会提示在 Application.Quit 上保存未保存的文件的主要内容,如果未能解决你的问题,请参考以下文章

打开excel出现灾难性错误并提示内存溢出的解决方法

关于excel vba 常用警告提示关闭的问题

outlook附件中的excel时,提示:无法创建文件

Excel表提示“无效引用 ,公式中所引的单元格不能位于256列或65536行后”这个错误

office 2010 提示“不信任到visual basic project“问题处理

下载请求发送成功,无下载提示,下载失败