我编写了一个代码来清除受保护工作表中的过滤器。基本上,它取消保护,工作表显示所有数据并保护工作表。但是在执行之后,工作表在没有密码的情况下受到保护,并且它提供了删除和插入行的权限,这些行在保护工作表时受到限制。请查看以下代码。
'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
答案 0 :(得分:1)
您的问题是您正在呼叫“保护”。功能两次。
第二个呼叫在选项中没有密码,因此保护它没有密码。
除非您要更改保护设置,否则无需再次调用所有设置,
ActiveSheet.Protect Password:="generation@34"
应该足以使用以前的设置密码保护您的工作表。
另外,选项;
AllowDeletingRows:=True
AllowInsertingRows:=True
两者都设置为true,这允许用户进行您想要限制的更改。