我正在使用这段代码:
Sheets("Sheet1").AutofilterMode = False
使用VBA取消Excel表格中的数据筛选(即清除所有筛选),以下是一种方法。但这种方式并不总是有效,是否存在更好的方式呢?
谢谢!
如果需要帮助,该表格链接自SQL Server(数据-->来自其他来源-->来自SQL Server...),并有一个彩色设计布局(特定于表格)。
我正在使用这段代码:
Sheets("Sheet1").AutofilterMode = False
使用VBA取消Excel表格中的数据筛选(即清除所有筛选),以下是一种方法。但这种方式并不总是有效,是否存在更好的方式呢?
谢谢!
如果需要帮助,该表格链接自SQL Server(数据-->来自其他来源-->来自SQL Server...),并有一个彩色设计布局(特定于表格)。
Worksheets("Sheet1").ShowAllData
替代。请参见http://msdn.microsoft.com/en-us/library/office/bb178108%28v=office.12%29.aspx。ShowAllData
只在您的工作表具有筛选器时才能正常运行,否则它将会出错。我发现您可以使用 On Error Resume Next
创建一个函数,这样它就可以适用于所有情况:
Sub ShowAllData()
On Error Resume Next
Worksheets("Sheet1").ShowAllData
End Sub
Sub Main()
ShowAllData
End Sub
ActiveSheet.ListObjects("Table_Sam_table1").Range.AutoFilter Field :=2
但是我需要它通用,适用于所有字段,不仅仅是清除第二个字段的筛选,而是所有字段。此外,最初问题中提出的解决方案可能仅适用于孤立的文本,不适用于对象(具有表名属性的表等)。 - Sam