Range.AutoFilter 方法 (Excel)
使用 [自動篩選] 篩選清單。
語法
expression.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown)
expression 傳回 Range 物件的運算式。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
Field | 選用 | Variant | 想要做為篩選基準之欄位 (從清單左側開始,最左側的欄位為第一欄) 的整數位移。 |
Criteria1 | 選用 | 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 支援與意見反應。