Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA使用ShowAllData重置多个高级筛选器_Excel_Vba_Filter - Fatal编程技术网

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

Excel VBA使用ShowAllData重置多个高级筛选器,excel,vba,filter,Excel,Vba,Filter,我在工作表中使用了3个高级过滤器,我想重置所有3个表。使用showAllData仅重置最后一个表。我尝试取消隐藏已筛选的行,但未成功。也许我应该把这三张表都循环一遍 Sub ClearFilter() ActiveSheet.ShowAllData End Sub 在ShowAllData清除上一个表中的筛选器后,可以取消隐藏其余隐藏行以显示如下所示的所有数据 Sub ClearFilter() On Error Resume Next ActiveSheet.Show

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

Sub ClearFilter()
    ActiveSheet.ShowAllData
End Sub

ShowAllData
清除上一个表中的筛选器后,可以取消隐藏其余隐藏行以显示如下所示的所有数据

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

我想这就是你想要的:

如果工作表(“Sheet1”).ListObjects(“Table1”).AutoFilter.FilterMode=True,则工作表(“Sheet1”).ListObjects(“Table1”).AutoFilter.ShowAllData

替换已有的图纸和表格名称。您需要使用
IF
station检查是否设置了过滤器,否则在尝试清除不存在的过滤器时会出错


如需进一步阅读,请参阅:

似乎您需要过滤range1(表)中的数据,然后将其清除,Range2和Range3也一样。清除只对最近使用的过滤器起作用,它不会在内存中为一次撤消缓冲它们。您可以编写一个宏来撤消所有3个。通过再次选择范围并清除过滤器(我相信,未经测试)。谢谢您的回复@不客气!你接受的解决方案对你有效吗?好的。但是当我提出的解决方案是直截了当的,不需要任何循环时,为什么您更喜欢在表中循环以禁用过滤器呢?我更喜欢您的解决方案,我相应地更改了绿色箭头@谢谢你!