AutoFilter

自动筛选是一个十分有用的功能,在数据统计和分类应用中相当方便。

其功能方法为AutoFilter.

适用于Range对象和WorkSheet对象。

总得来说筛选是一个高阶应用技术,如果应用熟练,对于数据的统计工作有很大帮助。

由于工作当中应用数据里不是太大,所以在这方面平时应用不多。

这里讲一下运用代码来如何对数据表进行筛选。

筛选说明

下图为例,对成绩表按姓名进行一个分类筛选,相当于一个查询功能。

实际上可以按成绩分数进行筛选,比如按90分筛选,或按60分都可以。

本例中可以自定义数据范围,也就是说可以选定要筛选哪些数据,这个都是很随意的。

然后就把姓名自动添加到左侧列表框内,选择列表框姓名就是可以显示出这个人的成绩。

其实这个筛选工作有点单一,如果是商品类数据表就更有意义。

比如要筛选出某一个商品,如手机的价格,那么就达到筛选目的了。

不过,其结果大同小异,只是换一下数据表。

Range.AutoFilter方法

语法

expression.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown)

参数说明

示例

ActiveSheet.Range("A1").AutoFilter _

Field:=1, _

Criteria1:="嫦娥", _

VisibleDropDown:=False

上面例子说明,筛选当前活动工作表,从单元格 A1 开始的列表,仅显示字段 1 的值等于“嫦娥” 的条目。 并且隐藏字段 1 的下拉箭头。

如果筛选已关闭,AutoFilter属性返回 Nothing。

若要为工作表创建自动筛选对象, 必须手动或使用Range对象的**自动筛选** 方法对工作表上的区域启用自动筛选。

设置筛选

Dim SR As Range Set SR = ActiveSheet.range("A1:D10") SR.AutoFilter _ field:=1, _ Criteria1:=“中国”, _ VisibleDropDown:=True '隐藏下拉箭头'筛选内容'筛选字段1

交当前工作表单元格,A1:D10区域设置为筛选区域,以第1字段为筛选条件,筛选出值为“中国”的条目来。

关闭筛选

ActiveSheet.AutoFilterMode = False '取消筛选

判断筛选

判断筛选功能是否开启,使用WorkSheet.FilterMode属性。

如果为真(TRUE)则开启,假(FALSH)关闭。

可以用下面函数进行判断。

Function getWorksheetFilterMode() As Boolean '判断表格是否开启自动筛选功能 Dim onoff As Boolean If ActiveSheet.FilterMode Then onoff = True Else onoff = False End If getWorksheetFilterMode = onoff End Function

总结

筛选功能在数据统计中应用是有独特的长处,但在数据里不大的情况下,一般的办公过程中可能应用较少。

不过也不能就不说就不用不去掌握这个功能。

学会之后会发现有其很独特的一面,操作方便简单,高效。

欢迎关注、收藏