执行宏观后,Excel表将不受密码的保护,从而清除了受保护表中的过滤器



我已经编写了一个代码以在受保护的工作表中清除过滤器。基本上,它没有保护表显示所有数据并保护工作表。但是在执行后,该工作表将在没有密码的情况下得到保护,并且可以访问删除和插入我在保护工作表时限制的行。请检查下面的代码。

'Keyboard Shortcut: Ctrl+p
On Error Resume Next
ActiveSheet.Unprotect Password:="generation@34"
ActiveSheet.ShowAllData
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
    AllowFormattingRows:=True, AllowInsertingRows:=True, _
    AllowInsertingHyperlinks:=True, AllowDeletingRows:=True,          AllowSorting:= _
    True, AllowFiltering:=True, AllowUsingPivotTables:=True

End Sub

您的问题是您两次调用'protect'函数。

第二个调用在选项中没有密码,因此没有密码保护它。

除非您要更改保护的设置,否则无需再次调用所有设置,该行

ActiveSheet.Protect Password:="generation@34"

应该在密码中使用以前的设置来保护您的工作表。

另外,选项;

AllowDeletingRows:=True
AllowInsertingRows:=True

都设置为True,这允许用户进行您要限制的更改。

最新更新