共用方式為


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 支援與意見反應