Excel 自动过滤除变量值以外的所有值

Mar*_*ová 6 excel vba autofilter

所以我需要过滤一行中的所有值,除了一个。我让它工作,使用这部分代码,这显然会过滤一切,但“比利时”,但我需要有变量。

Dim myValue As Variant
myValue = InputBox("Which country to exclude? ")

Range("AB1").Select
ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:="<>Belgium"
Run Code Online (Sandbox Code Playgroud)

对于我在特定国家/地区进行过滤的过滤器版本,该变量工作正常:

Dim myValue As Variant
myValue = InputBox("Which country to filter on: ")

Range("AB1").Select
ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:= _
    myValue
ActiveWindow.SmallScroll Down:=-30
Run Code Online (Sandbox Code Playgroud)

那么为什么这不起作用:

ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:= <>myValue
Run Code Online (Sandbox Code Playgroud)

另外我不知道为什么它是这样结构的,它是从 Record Macro 生成的,尤其是 _ Criteria1:= _ myValue

nwh*_*ght 7

“<>” 不是运算符(这就是您在“不工作”示例中尝试使用它的方式),而是需要成为您传递给 AutoFilter 的字符串的一部分(您就是这样做的)在第一个工作示例中。)

ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:= "<>" & myValue 应该管用。