Excel VBA使Excel相信,直到真正的变化发生

场景:

  1. 工作簿已打开
  2. screenupdate,计算(手动)事件设置为false
  3. 用户窗体显示和用户input一些值。
  4. 用户按下确定
  5. 从用户表单填充表单中的值
  6. 工作簿保存
  7. screenupdate,计算(自动)事件设置为true

当用户然后试图closures应用程序,而没有在工作簿中做任何事情,它会提示保存对话框。

不是一个大问题,但刺激:)任何方式来解决这个问题?

您是否尝试将工作簿的“保存值”设置为true? 就像是:

ActiveWorkbook.Saved = True 

我已经在自己的代码中看到了这种事情,在我的情况下,几乎总是由于volatile函数。 您可以在ThisWorkbook代码模块中具有以下内容:

 Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Save End Sub 

这应该可以工作,但是如果用户在用户表单closures之后进行了更改,那么他们可能会产生不希望的结果,而这些更改是他们不想保留的。