本帖最后由 hwc2ycy 于 2014-1-2 19:28 编辑
AutoFilter 方法 使用“自动筛选”筛选一个列表。 语法:AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown) Field 可选,相对于作为筛选基准字段(从列表左侧开始,最左侧的字段为第一个字段)的字段的整型偏移量。 Criteria1 可选,筛选条件(一个字符串;例如,“101”)。
使用“=”可查找空字段,或者使用“<>”查找非空字段。
如果省略该参数,则搜索条件为 All。 Operator 可选XlAutoFilterOperator 指定筛选类型的 XlAutoFilterOperator 常量之一。 Criteria2 可选,第二个筛选条件(一个字符串)。与Criteria1 和 Operator 一起组合成复合筛选条件。 VisibleDropDown 可选,决定是否显示筛选字段的自动筛选下拉箭头。 返回值:Variant(测试后发现返回的是逻辑值) 说明:如果忽略全部参数,此方法仅在指定区域切换自动筛选下拉箭头的显示。 数据截图:
示例:
Range("a1").CurrentRegion.AutoFilter1, "中国" 筛选国家为“中国”的数据。
With Range("a1").CurrentRegion .AutoFilter .AutoFilter 2, "满*" .AutoFilter 1, "美国" '先筛选姓满的销售人员,再继续筛选国家为美国的记录 End With
With Range("a1").CurrentRegion .AutoFilter .AutoFilter 5, , xlTop10Items '筛选订购额最大前十名的记录 End With
With Range("a1").CurrentRegion .AutoFilter .AutoFilter 1, "中国" .AutoFilter 2, "刘*", xlOr, "马*" '筛选出国家为中国,销售人员姓刘或马的记录一共35条 .AutoFilter 5, , xlBottom10Percent '继续筛选10%的最低记录 End With
关于最后一个VisibleDropDown,只对条件所在的列才有效果。 With Range("a1").CurrentRegion .AutoFilter .AutoFilter 1, "中国", , , False .AutoFilter 2, "刘*", xlOr, "马*" .AutoFilter 5, , xlBottom10Percent, , False '只针对性1,5列设置了不显示下拉箭头,2,3,4列还是会显示。 End With
With Range("a1").CurrentRegion
.AutoFilter
.AutoFilter 1, "中国", , , False
.AutoFilter 2, "刘*", xlOr, "马*"
.AutoFilter 5, "<500", xlOr, ">5000"
End With
‘国家为中国,销售人员姓马或刘,订购客低于500或大于5000的数据
关于更多用法,大家可以试着用录制宏的方法来体会,学习。
|