作者:乔山办公网日期:
返回目录: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