【分享成果,随喜正能量】什么是成年人最顶级的自律呢?就是不拆穿,但是会远离,
不动声色的淘汰身边的烂人烂事。黄连救人无功,人参杀人无过.。
应用4VBA中的自动筛选(Autofilter)
大家好,我们这个专题讲解VBA中的自动筛选(Autofilter),一般情况下,我们学习VBA之前都比较熟悉了Excel的利用,为了进一步提高效率,才学习VBA,把VBA宏派上用场。在Excel工作表中,我们可以轻松地根据标准功能,使用"数据"菜单内的"筛选"功能,完成多种多样的筛选以处理各式各样的信息。我们这讲的内容是利用VBA完成自动筛选。
对于应用而言,从小数据集合中过滤掉必要的信息可以使用"筛选"功能。但是,如果你希望根据多个标准和条件过滤大量数据,利用VBA自动过滤器功能可以更轻松。它可以为你节省大量的时间和精力。例如,假设你希望筛选下拉列表中的某些信息(基于多个标准),然后将结果复制/粘贴到其他工作表中。如果手动完成,这似乎是一项非常耗时的任务。在这种情况下,VBA可以帮助你自动化完成这个过程。
1Range.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。
l如果忽略全部参数,此方法仅在指定区域切换自动筛选下拉箭头的显示。如果此功能已经应用,代码将删除它们。
XlAutoFilterOperator枚举值:
1)xlAnd1Criteria1 和 Criteria2 的逻辑与
2)xlBottom10Items4显示最低值项 (在 Criteria1 中指定的项目数)
3)xlBottom10Percent6显示最低值项 (在 Criteria1 中指定的百分比)
4)xlFilterCellColor8单元格颜色
5)xlFilterDynamic11动态筛选
6)xlFilterFontColor9字体颜色
7)xlFilterIcon10筛选图标
8)xlFilterValues7筛选值
9)xlOr2Criteria1 或 Criteria2 的逻辑或
10)xlTop10Items3显示最高值项 (在 Criteria1 中指定的项目数)
11)xlTop10Percent5显示最高值项 (Criteria1 中指定的百分比)
本讲内容参考程序文件:应用003.xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: