我有一张受保护的Excel工作表,没有密码。 我想要做的是捕获用户取消保护工作表的事件,以便我可以生成一条消息(并且唠叨!)。我可以为应用程序设置事件检查,打开新工作簿等等,但不能用于Unprotect 有没有人有想法?
答案 0 :(得分:1)
可以使用工具 - >自定义修改菜单。可以将Protect / Unprotect设置为运行宏,例如:
Sub UnprotectTrap()
If ActiveSheet.ProtectContents = True Then
MsgBox "Tut,tut!"
ActiveSheet.Unprotect
Else
ActiveSheet.Protect
End If
End Sub
答案 1 :(得分:0)
无法捕获用户取消保护工作表,但如果他们保存工作簿而不重新保护工作表,则可以发出警告。
在工作簿模块中,输入此代码或类似内容
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("MyProtectedSheet").ProtectContents = False Then
MsgBox "The sheet 'MyProtectedSheet' should not be left unprotected. I will protect it before saving", vbInformation
Sheets("MyProtectedSheet").Protect
End If
End Sub