Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 8463|回复: 3

[已解决]如何用宏实现数据的自动筛选

[复制链接]
发表于 2009-12-3 10:16 | 显示全部楼层 |阅读模式
ORh8rT2v.rar (4.12 KB, 下载次数: 91)
发表于 2009-12-3 10:23 | 显示全部楼层

Sub zdsx()
    Selection.autofilter Field:=1, Criteria1:="<>" & [a1], Operator:=xlAnd
    Selection.autofilter Field:=2, Criteria1:="<>" & [b1], Operator:=xlAnd
    Selection.autofilter Field:=3, Criteria1:="<>" & [c1], Operator:=xlAnd
    Selection.autofilter Field:=4, Criteria1:="<>" & [d1], Operator:=xlAnd
    Selection.autofilter Field:=5, Criteria1:="<>" & [e1], Operator:=xlAnd
    Selection.autofilter Field:=6, Criteria1:="<>" & [f1], Operator:=xlAnd
    Selection.autofilter Field:=7, Criteria1:="<>" & [g1], Operator:=xlAnd
    Selection.autofilter Field:=8, Criteria1:="<>" & [h1], Operator:=xlAnd
    Selection.autofilter Field:=9, Criteria1:="<>" & [i1], Operator:=xlAnd
    Selection.autofilter Field:=10, Criteria1:="<>" & [j1], Operator:=xlAnd
End Sub
自己录个宏也可以修改得出来.
回复

使用道具 举报

发表于 2009-12-3 10:24 | 显示全部楼层    本楼为最佳答案   

精简点的:

Sub wayy()
Dim i As Integer
For i = 1 To 10
  Selection.autofilter Field:=i, Criteria1:="<>" & Cells(1, i), Operator:=xlAnd
Next
End Sub

回复

使用道具 举报

 楼主| 发表于 2009-12-3 11:34 | 显示全部楼层

非常谢谢楼上,精简的正是我想要的,还有一个问题请教一下:

如果有不连续的几列怎么办呢?比如:For i = 1 To 10,另外一组是For i = 22 To 35

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-6 05:39 , Processed in 0.634193 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表