AutoFilter-Objekt (Excel)

Stellt die automatische Filterung für das angegebene Arbeitsblatt dar.

Hinweis

Wenn Sie AutoFilter mit Datumsangaben verwenden, sollte das Format mit englischen Datumstrennzeichen ("/") anstelle lokaler Einstellungen (".") konsistent sein. Ein gültiges Datum wäre "2/2/2007", während "2.2.2007" ungültig ist.

Hinweis

Bei der Arbeit mit Objekten (z. B. dem Objekt "Interior ") muss ein Verweis auf ein Objekt hinzugefügt werden. Weitere Informationen zum Zuweisen eines Objektverweises zu einer Variablen oder Eigenschaft finden Sie in der Set-Anweisung .

Beispiel

Verwenden Sie die AutoFilter-Eigenschaft des Worksheet-Objekts , um das AutoFilter-Objekt zurückzugeben. Verwenden Sie die Filters -Eigenschaft, um eine Auflistung der einzelnen Spaltenfilter zurückzugeben. Verwenden Sie die Range -Eigenschaft, um das Range -Objekt zurückzugeben, das den gesamten gefilterten Bereich darstellt.

Im folgenden Beispiel werden die Adress- und Filterkriterien für die aktuelle Filterung gespeichert und dann neue Filter angewendet.

Dim w As Worksheet 
Dim filterArray() 
Dim currentFiltRange As String 
 
Sub ChangeFilters() 
 
Set w = Worksheets("Crew") 
With w.AutoFilter 
 currentFiltRange = .Range.Address 
 With .Filters 
 ReDim filterArray(1 To .Count, 1 To 3) 
 For f = 1 To .Count 
 With .Item(f) 
 If .On Then 
 filterArray(f, 1) = .Criteria1 
 If .Operator Then 
 filterArray(f, 2) = .Operator 
 filterArray(f, 3) = .Criteria2 
 End If 
 End If 
 End With 
 Next 
 End With 
End With 
 
w.AutoFilterMode = False 
w.Range("A1").AutoFilter field:=1, Criteria1:="S" 
 
End Sub

Wenn Sie ein AutoFilter-Objekt für ein Arbeitsblatt erstellen möchten, müssen Sie die Autofilterung für einen Bereich im Arbeitsblatt entweder manuell oder mithilfe der AutoFilter-Methode des Range-Objekts aktivieren. Im folgenden Beispiel werden die in Variablen auf Modulebene gespeicherten Werte des vorherigen Beispiels verwendet, um die ursprüngliche automatische Filterung für das Arbeitsblatt "Crew" wiederherzustellen.

Sub RestoreFilters() 
Set w = Worksheets("Crew") 
w.AutoFilterMode = False 
For col = 1 To UBound(filterArray(), 1) 
 If Not IsEmpty(filterArray(col, 1)) Then 
 If filterArray(col, 2) Then 
 w.Range(currentFiltRange).AutoFilter field:=col, _ 
 Criteria1:=filterArray(col, 1), _ 
 Operator:=filterArray(col, 2), _ 
 Criteria2:=filterArray(col, 3) 
 Else 
 w.Range(currentFiltRange).AutoFilter field:=col, _ 
 Criteria1:=filterArray(col, 1) 
 End If 
 End If 
Next 
End Sub 

Methoden

Eigenschaften

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.