我有一个运行某些ActiveX组件的Excel文件。缺点是每次关闭文件时都要求保存,即使我没有进行任何更改也是如此。 我尝试将以下代码添加到ThisWorkbook对象:
Private Sub Workbook_Open()
ActiveWorkbook.Saved = True
End Sub
但是,这似乎不起作用。当我尝试关闭文件而不进行更改时,它仍然要求我保存文件。
有帮助吗?
答案 0 :(得分:0)
啊,是的,我不得不亲自处理这个问题。由于这些组件在打开工作簿之后(以及您的Workbook_Open()
事件之后)运行,因此您需要在关闭工作簿时运行代码 。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
应放置在ThisWorkbook
代码模块中。
为了避免在实际更新时意外地不保存工作簿,您可以尝试设置自己的全局变量标志-该标志应位于标准模块中并具有Public
范围。之后,当您实际更改工作簿中的任何内容时,可以使用Workbook_SheetChange
事件来设置此标志:
Public bPromptSave as Boolean
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
bPromptSave = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if not bPromptSave then ThisWorkbook.Saved = True
End Sub