Reputation: 295
ActiveSheet.Range("F_Item").AutoFilter Field:=1, Criteria1:=Array("ca*", "inc*", "ps*"), Operator:=xlFilterValues
I am trying to filter column with multiple criteria using array, the condition is to filter the values which starts with ca
, or starts with inc
, or start with ps
.
ActiveSheet.Range("F_Item").AutoFilter Field:=1, Criteria1:="=ca*", Operator:=xlOr, Criteria2:="=inc*"
It's working this way, but its limited to search for two conditions only.
Upvotes: 1
Views: 18713
Reputation: 96753
With data like:
Running this macro:
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
Will produce:
Upvotes: 1
Reputation: 141
Try to use Advance filter
Range("C3:C20").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("D3:D6"), Unique:=False
Upvotes: 1