执行宏清除受保护工作表中的过滤器后,excel工作表在没有密码的情况下不受保护

时间:2017-06-02 12:29:46

标签: excel vba excel-vba excel-2010

我编写了一个代码来清除受保护工作表中的过滤器。基本上,它取消保护,工作表显示所有数据并保护工作表。但是在执行之后,工作表在没有密码的情况下受到保护,并且它提供了删除和插入行的权限,这些行在保护工作表时受到限制。请查看以下代码。

'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

1 个答案:

答案 0 :(得分:1)

您的问题是您正在呼叫“保护”。功能两次。

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

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

ActiveSheet.Protect Password:="generation@34"

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

另外,选项;

AllowDeletingRows:=True
AllowInsertingRows:=True

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