在执行清除受保护表格中的filter的macros后,Excel表格不受密码保护

我写了一个代码来清除受保护的工作表中的filter。 基本上,它不保护表单显示所有数据并保护表单。 但是在执行之后,工作表没有密码就被保护起来了,它可以访问删除和插入我保护工作表时受到限制的行。 请检查下面的代码。

'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 

你的问题是你正在调用两次“保护”function。

第二个电话在选项中没有密码,因此没有密码保护。

除非您正在更改保护设置,否则不需要再次调用所有设置

 ActiveSheet.Protect Password:="generation@34" 

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

另外,选项;

 AllowDeletingRows:=True AllowInsertingRows:=True 

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