【问题标题】:excel sheet is getting unprotected without password after executing the macro which clears filters in protected sheet执行清除受保护工作表中的过滤器的宏后,excel工作表在没有密码的情况下不受保护
【发布时间】:2017-06-02 12:29:46
【问题描述】:

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

'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

【问题讨论】:

    标签: vba excel excel-2010


    【解决方案1】:

    您的问题是您调用了两次“保护”功能。

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

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

    ActiveSheet.Protect Password:="generation@34"
    

    用以前的设置密码保护您的工作表就足够了。

    还有选项;

    AllowDeletingRows:=True
    AllowInsertingRows:=True
    

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

    【讨论】:

    • 我已将代码 'ActiveSheet.Unprotect Password:="generation@34" ActiveSheet.ShowAllData ActiveSheet.Protect Password:="generation@34"' 替换为 'ActiveSheet.Protect Password:="generation @34"' 但它仍然在没有密码的情况下受到保护。请帮忙
    • 这是下面的代码,您可以在其中指定问题所在的所有选项。因为它是一个单独的行和函数,Excel 将其视为这样,因此您正在保护工作表,没有指定其他选项,然后使用除密码以外的所有选项再次保护它。完全删除第二个“.Protect”功能,或者如果您确实想指定选项,请将“ActiveSheet.Protect Password:="generation@34"”与以下选项合并。
    • 请检查我在原始问题中编辑的代码,代码应该是这样吗?...我希望在工作表受到保护时执行排序和过滤功能。
    • DrawingObjects:=True之前,但在ActiveSheet.Protect之后你需要插入Password:="gerenation@34"来设置密码。此外,所有设置都设置为 true,但是您声明只应启用排序和过滤。将所有其他设置设置为False
    • 欣赏,先生,这是有效的。但我无法在保护表中排序。是否可以在宏中嵌入任何代码行,以允许在保护工作表中进行排序。谢谢。
    猜你喜欢
    • 2018-03-11
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 2016-11-27
    • 1970-01-01
    • 2020-12-10
    相关资源
    最近更新 更多