请问VBA中,多个条件筛选如何实现?

有6个条件,其中A B C 是与的关系 D E F是或的关系,举个例:这个筛选要求姓名=张三,年龄=20,性别=男,这三个条件都要满足,同时层级=中心 或 总部 或总公司,请问语句如何写?

第1个回答  推荐于2016-08-11
是否可以使用autofilter方法,并用field属性添加各个筛选条件即可。
语法:
expression.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)
expression 必需。该表达式返回“应用于”列表中的对象之一。
Field Variant 类型,可选。相对于作为筛选基准字段(从列表左侧开始,最左侧的字段为第一个字段)的偏移量
Criteria1 Variant
类型,可选。筛选条件(一个字符串;例如,“101”)。使用“=”可搜索到空字段,或者使用“<>”可搜索到非空字段。如果省略该参数,则搜索条件为
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追问

但是我是有三个条件或,最后那一条里面最多只能有两个或,这就是我烦恼的根源= =。

追答

那么请增加一个辅助列,先用工作表函数将符合三个“或”条件的行标记出来,再对这个辅助列进行筛选即可

本回答被提问者采纳
相似回答