Excel VBA编程 自动筛选
自动筛选是一种快捷的筛选方法。在VBA中,可以使用AutoFilter对象代表对指定工作表的自动筛选。下面主要介绍AutoFilter对象的方法和属性,其功能如表16-5所示。
表16-5 AutoFilter对象方法和属性功能表
名称 | 说明 | |
方法 | ApplyFilter | 应用指定的Autofilter对象。 |
ShowAllData | 显示AutoFilter对象返回的所有数据。 | |
属性 | Application | 如果不使用对象识别符,则该属性返回一个Application对象,该对象表示Excel应用程序。 |
FilterMode | 如果工作表的筛选模式为自动筛选,则返回True。 | |
Filters | 返回一个Filters集合,该集合表示自动筛选区域中的所有筛选器。 | |
Parent | 返回指定对象的父对象。 | |
Range | 返回一个Range对象,它代表应用指定的“自动筛选”的区域。 | |
Sort | 获取AutoFilter 集合的排序列和排序次序。 | |
1.筛选数据
用户可以使用AutoFilter方法的功能进行筛选数据,其语法如下:
表达式.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
其中,AutoFilter方法的各参数功能如下:
● Field 作为筛选基准字段(从列表左侧开始,最左侧的字段为第一个字段)的字段的整型偏移量。
● Criteria1 筛选条件。如果省略该参数,则搜索条件为All。
● Operator 指定筛选类型。
● Criteria2 第二个筛选条件(一个字符串)。其中,该参数与Criteria1和Operator参数一起组合成复合筛选条件。
● VisibleDropDown 如果为True,则显示筛选字段的自动筛选下拉箭头。如果为False,则隐藏筛选字段的自动筛选下拉箭头(默认值为True)。
例如,本例从工作表Sheet1上的A1单元格开始筛选出一个清单,该清单中只显示“酸奶”的数据,其代码如下:
Sub 自动筛选()
Worksheets("Sheet1").Range("A2:H35").AutoFilter 4, "酸奶"
End Sub
运行上面的代码,即可得到如图16-5所示的筛选结果。
图16-5 筛选结果
若需要隐藏字段名后面的下拉箭头,只需将代码修改为“Worksheets("Sheet1").Range("D2:
D35").AutoFilter 1, "酸奶", VisibleDropDown:=False”,运行该代码,其结果如图16-6所示。
图16-6 筛选并隐藏筛选箭头
2.取消筛选
若用户需要查看筛选前的源数据,可以使用ShowAllData方法,使当前筛选列表的所有行均可见。
语法:表达式.ShowAllData
例如,输入以下代码,即可对筛选后的数据全部显示出来。
Sub 取消筛选()
Worksheets("Sheet1").ShowAllData
End Sub
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论