Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt die automatische Filterung für das angegebene Arbeitsblatt dar.
Hinweis
Bei Verwendung von AutoFilter mit Datumsangaben sollte das Format mit englischen Datumstrennzeichen ("/") anstelle der lokalen Einstellungen (".") konsistent sein. Ein gültiges Datum wäre "2/2/2007", während "2.2.2007" ungültig ist.
Hinweis
Für das Arbeiten mit Objekten (z. B. dem Interior-Objekt ) 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
Um ein AutoFilter-Objekt für ein Arbeitsblatt zu erstellen, müssen Sie die automatische Filterung für einen Bereich auf dem 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.