Excel VBA编程  自动筛选
自动筛选是一种快捷的筛选方法。在VBA中,可以使用AutoFilter对象代表对指定工作表的自动筛选。下面主要介绍AutoFilter对象的方法和属性,其功能如表16-5所示。
表16-5  AutoFilter对象方法和属性功能表
vba编程技巧
名称
说明
方法
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小时内删除。