Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel不';t提示在应用程序上保存未保存的文件。退出_Excel_Vba - Fatal编程技术网

Excel不';t提示在应用程序上保存未保存的文件。退出

Excel不';t提示在应用程序上保存未保存的文件。退出,excel,vba,Excel,Vba,在Excel VBA中使用Application.Quit将启动默认的退出过程,其中包括提示用户保存当前在应用程序中打开的所有未保存文档 在跨多个系统(Excel 2010 32位、Windows 7 64位)进行测试时,我发现有些系统会提示用户保存,而有些系统则不会 我们检查了整个系统的设置(包括启用所有宏和禁用受保护视图),但没有结果。即使在不同的系统上使用相同的设置,也不会迫使同一个系统在Excel关闭之前提示用户保存他们的工作 这就好像Application.DisplayAlerts被

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

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

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

这就好像Application.DisplayAlerts被设置为False,但它没有。我们甚至尝试了以下代码行:

Application.DisplayAlerts = True
Application.Quit
在某些系统上,即使这样也不会提示用户保存未保存的文档。Excel只是突然关闭了

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

谢谢

根据评论更新:

我仔细检查了所有已打开和未保存的工作簿的Workbook.Saved属性,在应用程序之前该属性为false。请退出,这样就不会出现问题


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

禁用解算器加载项将返回正常行为。

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

ActiveWorkbook.Save
Application.Quit
但在一次崩溃后,excel要求我禁用解算器。禁用解算器后,Excel无法识别“保存”命令,尽管使用了“保存”命令,它仍会继续询问我是否要保存工作簿

然后我发现这个错误可以通过再次启用解算器来解决


非常奇怪

我尝试了同样的方法禁用解算器加载项,但没有成功。我决定也尝试禁用Hstbar加载项。这两个选项都被禁用,提示重新开始工作

可能有什么设置了
ActiveWorkbook.Saved=True
或类似的设置吗?在退出之前,我会添加这一行
ActiveWorkbook.Saved=False
(要测试单个工作簿,如果这样做有效,则需要更新代码以循环所有打开的工作簿并更改其保存状态)。但这显然是一种黑客行为,因为保存消息应该标记为不带代码,我以前没有遇到过这种情况,我将进一步查看其他Excel论坛,看看是否有人遇到过这种情况。您是否可能在没有更改工作簿的情况下退出?因为如果您没有更改任何内容,Excel将不会提示您保存,无论收尾状态为
DisplayAlerts
.thx。出于好奇,您是如何确定这是一个案例-尝试和错误,还是在其他地方找到了论坛答案?我将停用自己的加载项,看看它是否导致了问题。我注意到外接程序列表中的Solver并尝试禁用它,它解决了问题。运气好。:)