这可能听起来很愚蠢,但我试图通过使用ThisWorkbook中的以下代码来阻止在Excel工作簿中保存:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ThisWorkbook.Saved = True
End Sub
但是,在按下Ctrl + s
并关闭工作簿后,重新打开时,代码未被保存。
知道为什么会这样吗?
答案 0 :(得分:1)
这是一件好事 - 这意味着您的代码正常运行。您的代码阻止您自己保存工作簿。我已经在我做过的几个应用程序中有这个,其方法是制作一个子如下:
sub saveTheWB()
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
end sub
每次要保存时都必须运行此子目录。
答案 1 :(得分:0)
这是正确的,因为Workbook_BeforeSave
事件处理程序正在触发并取消保存操作。
在IDE的立即窗口中,在保存工作簿之前运行Application.EnableEvents = False
,它将保存代码。
不要忘记之后运行Application.EnableEvents = True
!