我需要从范围中排除多个条件。下面的代码没有错误,但它没有过滤掉所有值(例如" ZL1和#34;仍然在范围内)。我试过运算符:= xlAnd但结果没有什么不同。使用Operator:= xlFilterValues我得到"运行时错误' 1004':Range类的AutoFilter方法失败。
Sub Macro1()
Sheets("Z").Select
myarr = Array("<>ZC1", "<>ZL1", "<>ZF1")
lr = Range("A" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("$A$1:$M$" & lr).AutoFilter Field:=3, Operator:=xlOr, Criteria1:=(myarr)
End Sub
答案 0 :(得分:1)
正如Ibo在上面的评论中提到的,您不能直接使用AutoFilter来排除3个或更多值。 This particular post与您的情况相关。以下是一种示例性方法:
=ISNA(MATCH(C2, $P$2:$P$4,0))
。 然后运行此宏:
Sub Macro2()
lr = Range("A" & Rows.Count).End(xlUp).Row
Range("$A$1:$M$" & lr).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("O1:O2"), Unique:=False
End Sub
在运行宏之前:
在AdvancedFilter宏之后: