我以前在板上看到过这个问题,但无法让它发挥作用。
我正在尝试根据下拉列表从列中过滤数据。
我已经能够让它对单个变量起作用,但是对于多个变量,它似乎出于某种原因直接跳到最后一个,我不知道为什么。
Dim A1 As Variant,
A1 = Worksheets("Comparison Sheet").Cells(9, 4).Value
Sheets("Data Sheet").Range("B$31:S279").AutoFilter Field:=4, Criteria1:=("<>" & A1), Operator:=xlFilterValues
以上适用于单个变量
Dim A1 As Variant, A2 As Variant, A3 As Variant, A4 As Variant
A1 = Worksheets("Comparison Sheet").Cells(9, 4).Value
A2 = Worksheets("Comparison Sheet").Cells(10, 4).Value
A3 = Worksheets("Comparison Sheet").Cells(11, 4).Value
A4 = Worksheets("Comparison Sheet").Cells(12, 4).Value
Sheets("Data Sheet").Range("B$31:S279").AutoFilter Field:=4, Criteria1:=Array("<>" & A1, "<>" & A2, "<>" & A3, "<>" & A4), Operator:=xlFilterValues
这将返回一个运行时错误 (1004)“Range 类的 AutoFilter 方法失败”
我不确定为什么会出现此错误,因为我使用的代码与包容性过滤器基本相同,并且没有错误或问题,例如
Sheets("Data Sheet").Range("B$31:S279").AutoFilter Field:=4, Criteria1:=Array(A1, A2, A3, A4), Operator:=xlFilterValues
最后,当我将运算符设置为 xlAnd 时,
`Sheets("Data Sheet").Range("B$31:S279").AutoFilter Field:=4, Criteria1:=Array("<>" & A1, "<>" & A2, "<>" & A3, "<>" & A4), Operator:=xlAnd`
它总是只显示 A4 中的值,我不知道为什么会这样。