2013-01-20 19 views
6

私はこのコードを使用しています:VBA Unfilter範囲

Sheets("Sheet1").AutofilterMode = False 

をVBAを使用してExcelシート内のデータをunfilterする(ポイントはすべてのフィルタをクリアすることです)。これはいつもうまくいっていないようですが、良い方法がありますか?

ありがとうございました!

このテーブルは、SQL Server(データ - >他のソース - > From Sql Server ...)からリンクされ、色付けされたデザインレイアウト(テーブル固有)を持っています。

+2

私はこの作品が見つかりました: 'ActiveSheet.ListObjects ( "Table_Sam_table1")。Range.AutoFilter Field:= 2'しかし、私は一般的であり、すべてのフィールドで作業する必要があります。また、最初の質問に記載されている解決策は、おそらく孤立したテキストに対してのみ機能し、オブジェクト(プロパティにテーブル名を持つテーブルなど)には適用されません。 – Sam

答えて

0

ShowAllDataは、シートにフィルタが付いている場合にのみ機能します。そうでない場合は破損します。私はあなたがOn Error Resume Nextでこれからの関数を作成することができますし、それはすべてのケースで動作する必要があることが見つかりました:

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

End Sub 

次に、あなたのメインサブからの関数を呼び出す:

Sub Main() 

ShowAllData 

End Sub