筛选包含正则表达式或多个critera的数组

时间:2018-02-28 13:59:47

标签: regex excel-vba vba excel

我希望使用以m,n,o开头的任何内容过滤列。当我尝试使用2个项目进行过滤但不能使用超过2个项目时,情况正常。

Criteria1:="=m*", Operator:=xlOr, Criteria2:="=n*" 

可以正常过滤任何以m或n

开头的内容
//Criteria1:="=p*", Operator:=xlOr, Criteria2:="=z*", Operator:=xlOr, Criteria2:="=e*"  

引发错误无效标准

Criteria1:=Array("=mab", "=nab", "oab"), Operator:=xlFilterValues

可以正常过滤mab,nab,oab。

Criteria1:=Array("=m*", "=n*", "o*"), Operator:=xlFilterValues

很好地过滤字面上``m * , n * , o *`(它不被视为正则表达式),我看的是过滤任何以m开头的东西或者n或o

1 个答案:

答案 0 :(得分:2)

尝试以这种方式使用高级过滤器(假设该字段是A列)

Sub Test()
Application.ScreenUpdating = False
    With Sheets("Sheet1")
        If .FilterMode Then .ShowAllData
        .Range("H2").Formula = "=OR(LEFT(A2,1)=""m"",LEFT(A2,1)=""n"",LEFT(A2,1)=""o"")"
        .Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=.Range("H1:H2"), Unique:=False
        .Range("H2").ClearContents
    End With
Application.ScreenUpdating = True
End Sub