在 Excel 中的“想要保存更改”对话框后无法陷印
本文关键字:对话框 保存更改 中的 Excel | 更新日期: 2023-09-27 18:31:16
-
在Word VSTO中,我们有DocumentBeforeSave事件,该事件在"想要保存更改"对话框之后立即调用,我可以轻松取消标准"保存"对话框并显示我自己的对话框。
-
但是在Excel VSTO工作簿之前保存是在保存对话框关闭后调用的,它会导致我自己的保存对话框在内置对话框之后显示。我可以使用WorkbookBeforeClose事件,但我应该显示我自己的"想要保存更改"对话框,并且在按"不保存"时自动保存功能将不起作用。
之后立即调用我的代码,并能够防止内置的"保存"对话框或以某种方式告诉Excel创建一个自动保存点(使用我自己的"想要保存您的更改"对话框)当我按"不保存"时?
我不确定你是否找到了你的答案,因为这个线程有点过时,但我想我会投入我的 0.02 美元。
我在未锁定的非常隐藏的工作表和每个可见的工作表上创建了一个 [isDirty] 命名范围。更改我设置 [isDirty]=True
在工作簿中,在关闭之前,我有这个:
If [IsDirty] = True Then
Select Case MsgBox("Do you want to save the changes you made to '" & .Name & "'?", _
vbYesNoCancel + vbExclamation)
Case Is = vbYes
ThisWorkbook.Save
[IsDirty] = False
Case Is = vbNo
'Do not save
Case Is = vbCancel
Cancel = True
End Select
End If
在私有子Workbook_BeforeSave(ByVal SaveAsUI 作为布尔值,取消为布尔值)
ThisWorkbook.Save
[IsDirty] = False
Cancel=True