关于vba:在受保护的工作表的Excel功能区上启用”清除筛选器”

Enable Clear Filter on Protected Sheet's Excel Ribbon

即使Microsoft表示不可能:无法清除受保护工作表中的自动过滤器,但我仍然认为应该可以实现。至少我希望。

我知道我可以一栏一栏地清除过滤器,但是我希望用户能够单击Ribbon/Sort&Filter部分上的Clear功能。 (当前已禁用/显示为灰色)

Please

互联网上有很多问题,但老实说,这些问题都不是有用的。有可能吗?

我尝试为Unprotect Sheet定义Worksheet_Change事件,但这根本不明智,因为这会使我的工作表变慢,并且我无法找到正确的条件来定义到Worksheet_Change中。在此示例中,无论何时选择$:$行,它都在运行。所以我需要另一个聪明的建议。


您无需取消保护纸张即可清除过滤器。只需将此宏粘贴到模块中

1
2
3
4
5
6
Sub ClearFilter()
    Dim ws As Worksheet
    Set ws = ActiveSheet

    ws.AutoFilter.ShowAllData
End Sub

然后为其分配快捷键。

enter