乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>Excel</em> <em>VBA</em> 多条件自动筛选,

<em>Excel</em> <em>VBA</em> 多条件自动筛选,

作者:乔山办公网日期:

返回目录:excel表格制作


是否可以使用autofilter方法,并用field属性添加各个筛选条件即可。
语法:
expression.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
expression 必需。该表达式返回“应用于”列表中的对象之一。
Field Variant 类型,可选。相对于作为筛选基准字段(从列表左侧开始,最左侧的字段为第一个字段)的偏移量。
Criteria1 Variant
类型,可选。筛选条件(一个字符串;例如,“101”)。使用“=”可搜索到空字段,或者使用“<>”可搜索到非空字段。如果省略该参数,则e799bee5baa6e58685e5aeb9361搜索条件为
All。如果将 Operator 设为 xlTop10Items,Criteria1 则指定数据项个数(例如,“10”)。
Operator XlAutoFilterOperator 类型,可选。
XlAutoFilterOperator 可为以下 lAutoFilterOperator 常量之一。xlAnd defaultxlBottom10ItemsxlBottom10PercentxlOrxlTop10ItemsxlTop10Percent可使用 xlAnd 和 xlOr 将 Criteria1 和 Criteria2 组合成复合筛选条件。

具体使用示例:
Range(数据区域).AutoFilter Field:=数据区域中条件A所在列的序号, Criteria1:=条件A
Range(数据区域).AutoFilter Field:=数据区域中条件B所在列的序号, Criteria1:=条件B
Range(数据区域).AutoFilter Field:=数据区域中条件C所在列的序号, Criteria1:=条件C
Range(数据区域).AutoFilter Field:=数据区域中条件D所在列的序号, Criteria1:=条件D1, _
Operator:=xlOr, Criteria2:=条件D2

ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=8, Operator:= _
xlFilterValues, Criteria1:=">=" & Format(Sheet2.Range("D3"), "M/D/YYYY") _
, Operator:=xlAnd, Criteria2:="<=" & Format(Sheet2.Range("D1"), "M/D/YYYY")
====
我的是源数据在sheet1里面,筛选的时候条件copy在sheet2的D3和D1单元格;我是筛选指定日期区间的数据
若要增加其他条件的话,按照上面再增加条件就可以了,当然实话说我对VBA是基本不懂,我所用的都是百度拼凑的,按照思路一个一个条件去找的解决办法
Sub 记录筛选条件()
Const n = 2
Do
i = i + 1
If Cells(i, 1).EntireRow.Hidden = False Then
K = K + 1
End If
Loop Until K = 2
Cells(1, "g") = Cells(1, "g") & "," & Cells(i, "a")
End Sub
将每次筛选条件,记录在G1单元格,用逗号分开。
第1行为标题,筛选条件在A列

两个条件:

筛选第一列姓名为  张三,李四

ActiveSheet.Range("$A$1:$R$316920").AutoFilter Field:=1, Criteria1:=Array("张三", "李四"), Operator:=xlFilterValues

筛选第二列成绩为  优,良

ActiveSheet.Range("$A$1:$R$316920").AutoFilter Field:=2, Criteria1:=Array("优", "良"), Operator:=xlFilterValues

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网