Excel VBA使用ShowAllData重置多个高级筛选器

时间:2018-07-31 18:44:38

标签: excel vba filter

我在工作表中使用3个高级过滤器,我想重置所有3个表。使用showAllData仅重置最后一个表。我尝试取消隐藏筛选的行,但未成功。也许我应该遍历所有3个表?

Sub ClearFilter()
    ActiveSheet.ShowAllData
End Sub

2 个答案:

答案 0 :(得分:0)

ShowAllData清除了上一张表中的过滤器后,您可以取消隐藏其余隐藏行以显示所有数据,如下所示...

Sub ClearFilter()
    On Error Resume Next
    ActiveSheet.ShowAllData
    ActiveSheet.Rows.Hidden = False
End Sub

答案 1 :(得分:0)

我认为这就是您想要的:

IF Sheets("Sheet1").ListObjects("Table1").AutoFilter.FilterMode = True THEN Sheets("Sheet1").ListObjects("Table1").AutoFilter.ShowAllData

替换您拥有的工作表和表格名称。您需要IF语句来检查是否设置了过滤器,否则当您尝试清除不存在的过滤器时会出错。

有关更多信息,请参见:Why does ActiveSheet.FilterMode returns False when sheet has filter?