使用 [自動篩選] 篩選清單。
expression
.
AutoFilter
(
Field
,
Criteria1
,
Operator
,
Criteria2
,
SubField
,
VisibleDropDown
)
expression
傳回
Range
物件的運算式。
必要/選用
Variant
準則 (為字串,例如 "101")。 使用
"="
來尋找空白欄位,使用
"<>"
來尋找非空白欄位,以及使用
"><"
來選取資料類型中的 (無資料) 欄位。
如果省略此引數,則準則為 All。 如果
Operator
為
xlTop10Items
,
Criteria1
會指定項目個數 (例如,"10")。
Operator
XlAutoFilterOperator
指定篩選的類型的
XlAutoFilterOperator
常數。
Criteria2
Variant
第二準則 (為字串)。 與
Criteria1
及
Operator
搭配使用,建構複合準則。 也可以用來做為日期欄位上依日期、月份或年份篩選的單一準則。 後面接著 Array 和詳細說明的篩選準則
Array(Level, Date)
。 其中 Level 是 0-2 (年份、月份、日期),Date 是篩選期間的一個有效日期。
SubField
Optional
Variant
要套用準則所在資料類型的欄位 (例如,來自 Geography 的 "Population" 欄位或來自 Stocks 的 "Volume" 欄位)。 省略此值時,會以 "(Display Value)" 為目標。
VisibleDropDown
Variant
若為
True
,顯示篩選欄位的 [自動篩選] 下拉式箭號。 若為
False
,隱藏篩選欄位的 [自動篩選] 下拉式箭號。 預設值為
True
。
Variant
如果您忽略所有引數,這個方法只會在指定的範圍內切換顯示 [自動篩選] 下拉式箭號。
Mac 版 Excel 不支援此方法。 支援
Selection
和
ListObject
上類似的方法。
與公式不同,subfield 不需要以括號包含空格。
本範例會篩選從 Sheet1 工作表中 A1 儲存格開始的清單,只顯示第一欄為字串 Otis 的項目。 將會隱藏第一欄的下拉式箭號。
Worksheets("Sheet1").Range("A1").AutoFilter _
Field:=1, _
Criteria1:="Otis", _
VisibleDropDown:=False
此範例會篩選 Sheet1 上儲存格 A1 開始的清單,以僅顯示欄位一中包含 SubField Admin Division 1 (State/province/other) 的值,其中的值是 Washington 的項目。
Worksheets("Sheet1").Range("A1").AutoFilter _
Field:=1, _
Criteria1:="Washington", _
SubField:="Admin Division 1 (State/province/other)"
此範例會篩選 Sheet1 上的資料表 "Table1",以僅顯示欄位一中具有的 "(Display Value)" 為值 "1"、"3"、"Seattle" 或 "Redmond" 的項目。
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:=Array("1", "3", "Seattle", "Redmond"), _
Operator:=xlFilterValues
資料類型可以套用多個 SubField 篩選。 此範例會篩選 Sheet1 上的資料表 Table1,僅顯示欄位一中包含 SubField Time zone(s) 的值,其中的值為 Pacific Time Zone,而其中的 SubField Date Founded 為 1851 或者為 "(No Data)"。
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:="Pacific Time Zone", _
SubField:="Time Zone(s)"
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:=Array("1851", "><"), _
Operator:=xlFilterValues, _
SubField:="Date founded"
此範例會篩選 Sheet1 上的資料表 Table1,以根據 Population SubField 顯示欄位一的前 10 個項目。
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:="10", _
Operator:=xlTop10Items, _
SubField:="Population"
此範例會篩選 Sheet1 上的資料表 Table1,顯示 2019 年 1 月的所有項目,在欄位一顯示 2019 年 2 月。 不一定要有包含 1 月 31 日的列。
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria2:=Array(1, "1/31/2019", 1, "2/28/2019")
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。