我使用这个肮脏的黑客解决了我的问题:
' 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
有没有办法将这3个陈述合并为一行?一旦我在一行中有第三个标准(Criteria3),Excel似乎就会出现问题。此外,似乎不支持&lt;&gt; Array()。
答案 0 :(得分:1)
高级过滤器可能更适合此目的。
您也可以这样做:
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
你甚至可以使用RegEx,我之前并没有真正使用过RegEx,所以你必须谷歌它。