防止在Excel中保存无法保存?

时间:2014-12-31 03:03:37

标签: excel save

这可能听起来很愚蠢,但我试图通过使用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并关闭工作簿后,重新打开时,代码未被保存。

知道为什么会这样吗?

2 个答案:

答案 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