VBA自动filter(文本filter)有多个标准的“开始”
ActiveSheet.Range("F_Item").AutoFilter Field:=1, Criteria1:=Array("ca*", "inc*", "ps*"), Operator:=xlFilterValues
我正在尝试使用数组筛选多个条件的列,条件是筛选以ca
开头的值,或者以inc
开始,或者以ps
开头。
ActiveSheet.Range("F_Item").AutoFilter Field:=1, Criteria1:="=ca*", Operator:=xlOr, Criteria2:="=inc*"
它是这样工作的,但它仅限于search两个条件。
有了这样的数据:
运行这个macros:
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
会产生:
尝试使用高级filter
Range("C3:C20").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("D3:D6"), Unique:=False