2013-01-20 160 views
6

我使用這個代碼:VBA不過濾範圍

Sheets("Sheet1").AutofilterMode = False 

到不過濾中使用VBA Excel表的數據(點是清除所有的過濾器)。這似乎並不總是奏效,有沒有更好的方法?

謝謝!

如果有幫助,該表從Sql Server(數據 - >從其他來源 - >從Sql Server ...)鏈接,並且它有一個彩色的設計佈局(特定於表格)。

+2

,我發現這工作:

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

然後從你的主副通話功能'ActiveSheet.ListObjects (「Table_Sam_table1」)。Range.AutoFilter Field:= 2',但我需要它是一般的,適用於所有領域,而不是隻清除第二個域過濾器,而是全部。此外,最初問題中提到的解決方案可能僅適用於孤立文本,不適用於對象(在其屬性中具有表名的表等)。 – Sam

回答

0

ShowAllData只有在您的工作表有過濾器時才能使用,否則將會中斷。我發現,您可以創建這樣的功能與On Error Resume Next,它應該適用於所有情況:

Sub Main() 

ShowAllData 

End Sub