VBA取消筛选范围

8

我正在使用这段代码:

Sheets("Sheet1").AutofilterMode = False

使用VBA取消Excel表格中的数据筛选(即清除所有筛选),以下是一种方法。但这种方式并不总是有效,是否存在更好的方式呢?

谢谢!

如果需要帮助,该表格链接自SQL Server(数据-->来自其他来源-->来自SQL Server...),并有一个彩色设计布局(特定于表格)。


2
我发现这个代码可以工作:ActiveSheet.ListObjects("Table_Sam_table1").Range.AutoFilter Field :=2 但是我需要它通用,适用于所有字段,不仅仅是清除第二个字段的筛选,而是所有字段。此外,最初问题中提出的解决方案可能仅适用于孤立的文本,不适用于对象(具有表名属性的表等)。 - Sam
2个回答

18

3

ShowAllData 只在您的工作表具有筛选器时才能正常运行,否则它将会出错。我发现您可以使用 On Error Resume Next 创建一个函数,这样它就可以适用于所有情况:

Sub ShowAllData()
On Error Resume Next
Worksheets("Sheet1").ShowAllData

End Sub

然后从您的主要子程序中调用函数:
Sub Main()

ShowAllData

End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接