excel出现中文乱码的解决教程-英雄云拓展知识分享
129
2023-11-07
【摘要】 本书摘自《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》一书中第1章,第5节,陈锡卢、李应钦著。
1.5 单元格的高级筛选:Ronge.Pdvancedf'ifer 方法*
Range.AdvancedFilter 方法总共有4个参数,它们的作用如下。
(1)Action 参数用于指定是否将筛选的数据复制到其他位置或者在原区域进行筛选隐藏, 该参数为必需的,可以通过XIFilterAction 常量设置具体操作方式。
(2)CriteriaRang e 参数则是用筛选的条件设置单元格区域,该参数为可选参数。
(3)CopyToRange 参数则是如果指定了 Action参数的为XIFilterCopy 时,该参数才可用; 该参数为指明将筛选结果复制到指定单元格位置,为可选参数。
(4)Unique参数同样为可选参数,其作用是赋值为True,则只筛选满足条件中的一条记录; 为False 则是将所有满足条件的记录都筛选保留。
无言:先通过实例解说。
先在I1 单元格输入标题名称:分数,然后在12单元格输入公式:=">=70";这个公式表 示筛选考试分数大于等于70的数据。现在根据这个条件使用Range.AdvancedFilter方法来获取 需要的数据。具体过程如代码1-22所示。
代码1-22示例过程,筛选分数列满足>=70的数据。
(1)ActiveSheet.ShowAllData 为清除激活表的原区域筛选条件,还原为未筛选状态;接 着将源数据区域赋值Af_Rng 变量,作为 Range.AdvancedFilter的 Range 对象。
(2)采用3段If 判断语句:让用户选择是否需将筛选后的区域复制到其他单元格位置, 如果是,则让用户选择单元格位置并赋值给Cf_Rng 变量;接着判断如果未选择区域直接按了【取 消】或者Esc 键则退出过程;最后判断如果选择了区域当时选择工作表与Af_Rng的父级对象
不在同一工作表也退出过程。
(3)让用户选择筛选的条件区域并赋值给Tj_Rng 变量,该区域必需为含有标题及条件单 元格,最少2个单元格,然后再判断 Tj_Rng 变量是否为Nothing,若赋值,则再判断是否和 Af_Rng 变量是否在同一表中,否则退出过程。
(4)通过 Select Case 选择语句,根据Cf_Rng 是否赋值了区域,若为 True 未赋值区域时, 则在 Af_Rng 原区域进行筛选操作;若为 False 时则将筛选结果复制到Cf_Rng 变量指定区域 区域。
皮蛋:言子,那我如果加上Unique参数并赋值为True, 会怎么样呢?
无言:高级筛选后会保留满足条件的第1条记录,其他后续满足条件的都会被摒弃——保 留不重复数据。
皮蛋:这样啊,那我等下去试试看。
无言:图1-19所示为一个高级筛选习题,有时间就摆弄下。
1.5 单元格的自动筛选功能:Range.Autof'ifer 方法*
1.AutoFilter 对象和 Filters 集合
无言:说完了高级筛选,接着讲自动筛选功能——Range.A utoFilter方法,顺便把AutoFilter 对象和Filters集合也了解下。
? 皮蛋: 为什么将AutoFilter对象放这里说了呢?
无言:嗯,虽然它是属于工作表属性的对象,但是实际上它却是经常操作的对象,所以放 在这里讲了。
AutoFilter 对象用于开启自动筛选功能及判断工作表上是否存在筛选等。其常用成员如表1-9 所示。
ShowAllData 属于AutoFilter 对象的方法,主要用于清空所有标题的筛选条件, 一次性将 它们恢复初始状态,其语法如下:
显示 AutoFilter 对象返回的所有数据
Worksheets.ShowAllData
无言:在代码1-22示例过程中已经使用过ShowAllData方法,其作用当高级筛选为在原区
域进行筛选时,使用ShowAllData方法后将清空区域中筛选状态,返回初始为设置任何筛选条 件的状态。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~