在AutoFilter中结合多个排除(<>)条件

我使用这个肮脏的黑客来解决我的问题:

' Filter managerial functions ActiveSheet.Range("$A$1:$BW$2211").AutoFilter Field:=36, Criteria1:="<>Head*", _ Criteria2:="<>IT*", Operator:=XlAutoFilterOperator.xlAnd ActiveSheet.Range("$A$1:$BW$2211").AutoFilter Field:=36, Criteria1:="<>Local Head*", _ Criteria2:="<>Resp*", Operator:=XlAutoFilterOperator.xlAnd ActiveSheet.Range("$A$1:$BW$2211").AutoFilter Field:=36, Criteria1:="<>Team Lead*", _ Criteria2:="<>XB*", Operator:=XlAutoFilterOperator.xlAnd 

有没有办法把这三个陈述合并成一行? 一旦我有第三个标准(Criteria3)在一行Excel似乎有问题。 此外,<> Array()似乎不被支持。

先进的filter可能更适合于此目的。

你也可以做这样的事情:

 Dim bUnion As Boolean Dim i As Long Dim vData As Variant Dim rDataHide As Range vData = Application.Transpose(ActiveSheet.Range("$AJ$1:$AJ$2211")) bUnion = False For i = 1 To 2211 If LenB(vData(i)) Then If vData(i) Like Whatever Or vData(i) Like Whatever2 Then If bUnion Then Set rDataHide = Union(rDataHide, ActiveSheet.Range("$AJ$" & i)) Else Set rDataHide = ActiveSheet.Range("$AJ$" & i) bUnion = True End If End If End If Next i rDataHide.Rows.Hidden = True 

你甚至可以使用正则expression式,但我还没有真正使用正则expression式,所以你不得不谷歌它。