2013-01-20 10 views
6

Używam tego kodu:VBA Unfilter wahają

Sheets("Sheet1").AutofilterMode = False 

do unfilter dane w arkuszu programu Excel przy użyciu VBA (chodzi o to, aby usunąć wszystkie filtry). Wydaje się, że to nie zawsze działa, czy jest lepszy sposób?

Dziękujemy!

Jeśli jest to pomocne, ta tabela jest połączona z serwerem SQL (dane -> z innych źródeł -> z serwera Sql ...) i ma kolorowy układ projektu (specyficzny dla tabeli).

+2

Znalazłem to działa: 'ActiveSheet.ListObjects ("Table_Sam_table1"). Range.AutoFilter Field: = 2' ale potrzebuję tego, aby był ogólny i działał dla wszystkich pól, nie czyścił tylko drugiego filtra, ale wszystkich. Również rozwiązanie podane w pytaniu początkowym prawdopodobnie działa tylko dla tekstu izolowanego, nie dotyczy obiektów (tabele, które mają nazwy tabel we właściwościach itp.). – Sam

Odpowiedz

0

Urządzenie ShowAllData będzie działało tylko wtedy, gdy arkusz ma filtr, w przeciwnym razie pęknie. Okazało się, że można utworzyć funkcję, z tego z On Error Resume Next i powinien działać we wszystkich przypadkach:

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

End Sub 

Następnie wywołanie funkcji z głównego sub:

Sub Main() 

ShowAllData 

End Sub