在受保护的工作表和Excel功能区

时间:2017-06-08 02:11:39

标签: excel vba excel-vba ribbon worksheet

即使微软说它不可能:Can't clear auto filter in protected sheet,我仍然认为这应该是可行的。至少我希望。

我知道我可以逐个清除列中的过滤器,但我希望用户能够点击Clear部分中的 Ribbon/Sort&Filter 功能。 (目前它被禁用/灰显

Please see the screenshot for any misunderstanding.

互联网上有很多问题,但没有一个是老实说的。有可能吗?

我尝试将Worksheet_Change事件定义为 Unprotect Sheet ,但这根本不明智,因为它会降低我的工作表速度,而且我无法找到正确的条件来定义Worksheet_Change。在此示例中,只要选择$:$ rows ,它就会运行。所以我需要另一个聪明的建议。

1 个答案:

答案 0 :(得分:1)

您无需取消保护工作表以清除过滤器。只需将此宏粘贴到模块中

即可
Sub ClearFilter()
    Dim ws As Worksheet
    Set ws = ActiveSheet

    ws.AutoFilter.ShowAllData
End Sub

然后为其分配快捷键。

enter image description here

现在,当您按 CTRL + SHIFT + C 时,您将看到自动过滤数据被重置。