我使用了与此答案类似的方法来强制用户使用某个按钮进行保存。我有以下几点:
公共变量
Dim MacroSave As Boolean
按钮事件
Sub RealSave_Click() MacroSave = True ThisWorkbook.Save MacroSave = False End Sub
保存捕手
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Not MacroSave Then Cancel = True 'Cancels any request to save the file MsgBox "Workbook not saved." Else Ret = MsgBox("Are you sure you want to save?", vbCritical Or vbYesNo, "Save File?") If Ret = vbNo Then Cancel = True End If End Sub
悲伤上面的代码完美地工作了一定时间,但现在它告诉我Code execution has been interrupted的MacroSave = False。如果我点击Continue了错误弹出窗口,则文件已保存好。我看不到任何不能正常工作的东西。就是这个讨厌的弹出窗口。
我试过了DoEvents在之前MacroSave = False和之后 添加ThisWorkbook.Save,但是代码在上被中断DoEvents。
将该行移至“ save catcher ”,但End Sub按钮事件出现了相同的错误。
On Error Resume Next,但不能消除此问题。
我做错了什么,如何消除呢?