启用受保护工作表的Excelfunction区上的清除筛选器

即使微软说这是不可能的: 不能清除在受保护的表中的自动filter ,我仍然认为这应该是可能的。 至less我希望。

我知道我可以逐个清除列中的filter,但是我希望用户能够在functionRibbon/Sort&Filter部分单击Clearfunction。 ( 目前已禁用/变灰

请看截图,了解任何误解。

互联网上有很多问题,但没有一个是真正有用的。 有没有可能?

我试着将Worksheet_Change事件定义为Unprotect Sheet,但这样做根本不合理,因为它会减慢我的工作表,并且无法find正确的条件来定义到Worksheet_Change 。 在这个例子中, 只要select$:$行,它就会运行。 所以我需要另一个明智的build议。

您无需取消保护工作表以清除filter。 只需将此macros粘贴到模块中

 Sub ClearFilter() Dim ws As Worksheet Set ws = ActiveSheet ws.AutoFilter.ShowAllData End Sub 

然后给它分配一个快捷键。

在这里输入图像说明

现在当你按下CTRL + SHIFT + C时 ,你会看到自动filter的数据被重置。