Range.AutoFilter 方法 (Excel)
通过 AutoFilter 筛选列表。
语法
expression.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown)
expression:一个返回 Range 对象的表达式。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Field | 可选 | Variant | 相对于作为筛选基准字段(从列表左侧开始,最左侧的字段为第一个字段)的字段的整型偏移量。 |
Criteria1 | 可选 | Variant | 条件(字符串;例如,“101”)。 使用 "=" 查找空白字段,使用 "<>" 查找非空白字段,使用 "><" 选择数据类型中的(否数据)字段。如果此参数被省略,条件为“全部”。 如果 Operator 是 xlTop10Items,则 Criteria1 指定项数(例如“10”)。 |
Operator | 可选 | XlAutoFilterOperator | 一个指定筛选器类型的 XlAutoFilterOperator 常量。 |
Criteria2 | 可选 | Variant | 第二个条件(字符串)。 与 Criteria1 和 Operator 一起组合成复合筛选条件。 也用作日期字段的单一条件(按日、月或年筛选)。 后跟一个数组,该数组用于详述和筛选 Array(Level, Date)。 其中,Level 为 0-2(年、月、日),Date 为筛选期内的一个有效日期。 |
SubField | 可选 | Variant | 对其应用条件的数据类型中的字段(例如,来自地理位置的“人口”字段或来自股票的“交易量”字段)。 省略此值目标是“(显示值)”。 |
VisibleDropDown | 可选 | Variant | 如果为 True,则显示已筛选字段的 AutoFilter 下拉箭头。 如果为 False,则隐藏已筛选字段的 AutoFilter 下拉箭头。 默认情况下为 True。 |
返回值
Variant
注解
如果忽略全部参数,此方法仅在指定区域切换自动筛选下拉箭头的显示。
Excel for Mac 不支持此方法。 支持对 Selection 和 ListObject 使用类似方法。
与在公式中不同,子字段无需使用括号即可包含空格。
示例
此示例会筛选工作表 Sheet1 上从单元格 A1 开始的列表,从而仅显示字段 1 等于字符串 Otis 的条目。 将隐藏字段 1 的下拉箭头。
Worksheets("Sheet1").Range("A1").AutoFilter _
Field:=1, _
Criteria1:="Otis", _
VisibleDropDown:=False
此示例会筛选工作表 Sheet1 上从单元格 A1 开始的列表,从而仅显示字段 1 的值包含 SubField = 行政署 1 (省/市/自治区/其他) 的条目,其中该值为“华盛顿”。
Worksheets("Sheet1").Range("A1").AutoFilter _
Field:=1, _
Criteria1:="Washington", _
SubField:="Admin Division 1 (State/province/other)"
此示例会筛选工作表 Sheet1 上的表格 Table1,从而仅显示字段 1 的值具有为 1、3、“西雅图”或“雷德蒙德”的“(显示值)”的条目。
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:=Array("1", "3", "Seattle", "Redmond"), _
Operator:=xlFilterValues
数据类型可应用多个 SubField 筛选器。 此示例会筛选工作表 Sheet1 上的表格 Table1,从而仅显示字段 1 的值包含 SubField = 时区的条目,其中该值为太平洋时区,名为“找到的日期”的 SubField 为 1851 或“(无数据)”。
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,从而根据“人口”SubField 显示字段 1 的前 10 个条目。
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
Field:=1, _
Criteria1:="10", _
Operator:=xlTop10Items, _
SubField:="Population"
此示例会筛选 Sheet1 上的表格 Table1,以显示字段 1 中 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。