VBA经典应用69例应用四:条件AND筛选和多标准筛选

《VBA经典应用69例》(版权10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容:VBA经典应用69例应用四:条件AND筛选和多标准筛选

b60c19772b8659edccba490abfb7ea3d.jpeg

分享成果,随喜正能量】茶,丰盈了年华。有茶如酒,时光越是深远,饱经岁月洗礼后,它越是醇美。一个社会,不同意见是正常的,不要急于去反对,或者扣帽子,甚至去打压与自己不同见解的人,对于不同意见最好的处理方式,就是辩论,只有辩论,才会出真知。 。

应用4 VBA中的自动筛选(Autofilter)

大家好,我们这个专题讲解VBA中的自动筛选(Autofilter),一般情况下,我们学习VBA之前都比较熟悉了Excel的利用,为了进一步提高效率,才学习VBA,把VBA宏派上用场。在Excel工作表中,我们可以轻松地根据标准功能,使用"数据"菜单内的"筛选"功能,完成多种多样的筛选以处理各式各样的信息。我们这讲的内容是利用VBA完成自动筛选。

对于应用而言,从小数据集合中过滤掉必要的信息可以使用"筛选"功能。但是,如果你希望根据多个标准和条件过滤大量数据,利用VBA自动过滤器功能可以更轻松。它可以为你节省大量的时间和精力。例如,假设你希望筛选下拉列表中的某些信息(基于多个标准),然后将结果复制/粘贴到其他工作表中。如果手动完成,这似乎是一项非常耗时的任务。在这种情况下,VBA可以帮助你自动化完成这个过程。

4 同一列中条件AND的筛选

在上一个例子中我们讲了实现两个条件OR的筛选,我们这个例子中实现两个条件AND的筛选。仍是上面的数据我们实现年龄小于12,大于或者等于8的数据。我们看下面的代码:

Sub mynzC()

'清空数据

Sheets("SHEET1").Select

Cells.ClearContents

With Sheets("Sheet2").Range("A1")

'筛选需要的数据

.AutoFilter Field:=2, Criteria1:="<12", Operator:=xlAnd, Criteria2:=">=8", VisibleDropDown:=False

'将筛选后的数据复制到指定位置

.SpecialCells(xlCellTypeVisible).Copy Sheets("SHEET1").Range("A1")

'去掉筛选

.AutoFilter

End With

End Sub

代码截图:

f377763185bf741ba72f77b2db85816d.jpeg

代码的讲解:

① .AutoFilter Field:=2, Criteria1:="<12", Operator:=xlAnd, Criteria2:=">=8", VisibleDropDown:=False

以上代码就是实现“8<=年龄<12”的数据提取。中间Operator的值用的是xlAnd。

下面我们看代码的运行结果:

6ea05ae55478e1aeaa8b4eef1015c1b8.jpeg

5 按不同列的多个标准进行筛选

自动过滤功能还有助于用户同时过滤多个列。例如,如果你想根据抬头"年龄"和"性别"字段来筛选数据集。下面的代码是删选出“年龄=8”“性别=男”的数据,我们看下面的代码:

Sub mynzD()

'清空数据

Sheets("SHEET1").Select

Cells.ClearContents

With Sheets("Sheet2").Range("A1")

'筛选需要的数据1

.AutoFilter Field:=3, Criteria1:="男", VisibleDropDown:=False

'筛选需要的数据2

.AutoFilter Field:=2, Criteria1:="8", VisibleDropDown:=False

'将筛选后的数据复制到指定位置

.SpecialCells(xlCellTypeVisible).Copy Sheets("SHEET1").Range("A1")

'去掉筛选

.AutoFilter

End With

End Sub

代码截图:

e24df2a20dd6307244e3c5e6c1d3fda8.jpeg

代码的解读:

①'筛选需要的数据1

.AutoFilter Field:=3, Criteria1:="男", VisibleDropDown:=False

'筛选需要的数据2

.AutoFilter Field:=2, Criteria1:="8", VisibleDropDown:=False

以上代码给出了两个筛选的条件,其一是Field:=3, Criteria1:="男",其二是Field:=2, Criteria1:="8"。得到的结果是符合上面两个条件。

下面看代码运行的结果:

49d655133878995d490cf4a590e25b51.jpeg

【待续】

本讲内容参考程序文件:应用003.xlsm

4065425406bad47c39eb3058a6f1a294.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


fc4da2a5d7ae1ccebb1c7a8535db7b06.jpeg

45a474ce32df12db00507c19335bc6f9.jpeg

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值