Excel) (AutoFilter 物件
代表對指定之工作表的自動篩選。
注意事項
When using AutoFilter with dates, the format should be consistent with English date separators ("/") instead of local settings ("."). A valid date would be "2/2/2007", whereas "2.2.2007" is invalid.
注意事項
例如,使用 (的物件時, Interior 物件) 需要加入物件的參考。 您會在 Set 語句中找到將物件參考指派給變數或屬性的詳細資訊。
範例
使用Worksheet物件的AutoFilter屬性可傳回AutoFilter物件。 使用 Filters 屬性可傳回個別欄位篩選的集合。 使用 Range 屬性則可傳回代表整個篩選範圍的 Range 物件。
下列範例會儲存目前篩選的位址和篩選準則,然後套用新的篩選準則。
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
若要建立工作表的AutoFilter物件,您必須手動或使用Range物件的AutoFilter方法,開啟工作表上某個範圍的自動篩選。 下列範例會使用儲存在前一個範例模組層級變數中的值,為 Crew 工作表還原最初的自動篩選。
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
方法
屬性
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。