为什么Excel会停止提示保存用户打开的工作簿?

时间:2018-05-02 20:52:04

标签: excel vb.net com office-interop

编辑:我是个傻瓜;这不是一个出色的故障,而是一个程序员错误。有一个Worksheet.Application.DisplayAlerts = False我在原始搜索中忘记了/错过了。一旦我在关闭工作簿之前添加了必要的Worksheet.Application.DisplayAlerts = True,一切正常。

我有一个有趣的故障,我不太了解,我希望有人可以帮助我。

我有一个vb.NET程序,它使用excel COM引用来打开现有工作簿,修改文件,保存并关闭它。奇迹般有效。为了最大限度地减少资源使用,程序在用户导航到程序的该部分时在后台打开一个excel应用程序,并且在程序关闭之前不关闭它。

如果用户在程序处于活动状态时打开excel文件,操作系统将自动使用我的程序在后台打开的excel应用程序。没问题,一切正常。如果用户编辑该文件,excel将在关闭文件之前提示他们保存。一旦用户关闭他们的工作簿,excel应用程序将返回到后台。如果用户关闭我的程序,后台excel应用程序将关闭。如果用户运行修改功能并关闭我的程序,则当用户打开工作簿时,excel将正常运行。

然而!如果用户在运行修改功能后让程序保持打开状态,则在修改文件后,excel将不再提示他们保存。与他们打开的工作簿无关,excel的特定实例将不再提示用户在修改后保存。

我没有抑制此特定功能的警报。我的程序中还有5个类似的函数,它们以基本相同的方式运行(打开工作簿,修改它,保存它并关闭它)。在用户实际点击运行按钮之前,它们都以相同的方式打开excel。只有一个导致故障。

我真的只是想了解这里发生了什么。在过渡期间,我在用户点击按钮运行按钮之后更改了我的功能以打开excel,而不是事先动态。然而,这并不理想,因为它会在执行我的功能时增加大约4秒钟。

我正在使用:

Windows 10 Enterprise 1709 16299.371

Excel 2016 MSO(16.0.7329.1051)32位

如果您有任何其他版本或一般信息,请告诉我们。在此先感谢您的帮助,这个网站是一个很好的资源!

0 个答案:

没有答案