在自动筛选条件中使用多个单元格值

时间:2015-04-28 20:44:03

标签: excel-vba cell autofilter vba excel

请帮助我解决这个问题:

1)单元格P1,P2,P3,P4中存在的值是用户定义的单词,如“F”,“S”和NA ...

2)使用用户定义的值作为过滤范围内数据的标准(Y2:Y2999)

我试过的不起作用的是:

Sub c1()
Dim a As String
Dim b As String
Dim c As String
Dim d As String
a = Cells(1, 16).Value
b = Cells(2, 16).Value
c = Cells(3, 16).Value
d = Cells(4, 16).Value
ActiveSheet.Range("$Y$2:$Y$2999").AutoFilter Field:=1,_
Criteria1:=Array(a, b, c, d)
End Sub

1 个答案:

答案 0 :(得分:1)

我相信你应该添加Criteria2Criteria3Criteria4

我会更新这一行

ActiveSheet.Range("$Y$2:$Y$2999").AutoFilter Field:=1,_
Criteria1:=Array(a, b, c, d)

ActiveSheet.Range("$Y$2:$Y$2999").AutoFilter Field:=1, _
Criteria1:="=" & a, _
    Operator:=xlOr, _
Criteria2:="=" & b, _
    Operator:=xlOr, _
Criteria3:="=" & c, _
    Operator:=xlOr, _
Criteria4:="=" & d

或者如果您打算这样做:

ActiveSheet.Range("$Y$2:$Y$2999").AutoFilter Field:=1,_
Criteria1:=Array(a, b, c, d)

您应该尝试添加xlFilterValues运算符,使其看起来像这样:

ActiveSheet.Range("$Y$2:$Y$2999").AutoFilter Field:=1, _
Criteria1:=Array(a, b, c, d), _
Operator:=xlFilterValues