如果条件不符合,如何在BeforeSave事件期间closures工作簿?
我正在尝试在BeforeSave事件期间closures工作簿,如果不满足条件。 我正在使用下面的代码,保存取消按预期,但closures事件崩溃Excel。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If X <> Y then Cancel = True ThisWorkbook.Close savechanges:=False End If End Sub
我甚至试图调用另一个closures命令在其中,但也产生了同样的问题
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If X <> Y then Cancel = True ExitNoSave End If End Sub Public ExitNoSave () ThisWorkbook.Close savechanges:=False End Sub
这里是从代码的屏幕抓取我做了一个新的工作簿只有之前保存事件,它仍然发生。
有没有人有办法做到这一点,或者不可能从BeforeSave事件做到这一点?
好吧,我想通了你必须使用AfterSave事件来完成这个现在显然是这样的,如果你用BeforeSave事件取消保存,它将保存失败传递给AfterSave事件,然后你可以为不同的条件编写你的代码。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If 1 <> 2 Then Cancel = True End If End Sub Private Sub Workbook_AfterSave(ByVal Success As Boolean) If Success = False Then ThisWorkbook.Close savechanges:=False End If End Sub