【问题标题】:Trap the Worksheet Unprotect event in Excel在 Excel 中捕获 Worksheet Unprotect 事件
【发布时间】:2010-09-19 16:22:37
【问题描述】:

我有一个受保护的 Excel 工作表,没有密码。 我想做的是捕获用户取消保护工作表的事件,以便我可以生成一条消息(并唠叨他们!)。我可以设置应用程序的事件检查、打开新工作簿的时间等,但不能设置 Unprotect。
有人有想法吗?

【问题讨论】:

    标签: excel event-handling vba


    【解决方案1】:

    可以使用工具->自定义修改菜单。 Protect/Unprotect可以设置运行宏,例如:

    Sub UnprotectTrap()
    If ActiveSheet.ProtectContents = True Then
        MsgBox "Tut,tut!"
        ActiveSheet.Unprotect
    Else
        ActiveSheet.Protect
    
    End If
    End Sub
    

    【讨论】:

      【解决方案2】:

      没有办法让用户取消保护工作表,但如果他们保存工作簿而不重新保护工作表,您可以警告他们。

      在 Workbook 模块中,放置这段代码,或者类似的东西

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-28
        • 1970-01-01
        • 2011-01-29
        • 1970-01-01
        • 2022-10-18
        • 2012-08-16
        相关资源
        最近更新 更多