我已经编写了一个代码以在受保护的工作表中清除过滤器。基本上,它没有保护表显示所有数据并保护工作表。但是在执行后,该工作表将在没有密码的情况下得到保护,并且可以访问删除和插入我在保护工作表时限制的行。请检查下面的代码。
'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,这允许用户进行您要限制的更改。