ActiveSheet.Range("F_Item").AutoFilter Field:=1, Criteria1:=Array("ca*", "inc*", "ps*"), Operator:=xlFilterValues
我尝试使用数组过滤具有多个条件的列,条件是过滤以ca
开头的值,或以inc
开头,或以ps
开头。< / p>
ActiveSheet.Range("F_Item").AutoFilter Field:=1, Criteria1:="=ca*", Operator:=xlOr, Criteria2:="=inc*"
它以这种方式工作,但仅限于搜索两个条件。
答案 0 :(得分:1)
尝试使用高级过滤器
Range("C3:C20").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("D3:D6"), Unique:=False
答案 1 :(得分:1)
使用以下数据:
运行此宏:
Sub WildAutofilter()
Dim data As Range, c As Collection
Dim v As String, i As Long, ary
Set data = Range("A1:A23")
Set c = New Collection
On Error Resume Next
For i = 2 To 23
v = Cells(i, 1).Value
If Left(v, 2) = "ps" Or Left(v, 2) = "ca" Or Left(v, 3) = "inc" Then
c.Add v, CStr(v)
End If
Next i
On Error GoTo 0
ReDim ary(0 To c.Count - 1)
For i = 1 To c.Count
ary(i - 1) = c.Item(i)
Next i
With ActiveSheet.Range("$A$1:$A$23")
.AutoFilter Field:=1, Criteria1:=(ary), Operator:=xlFilterValues
End With
End Sub
将产生: