Excel自动筛选器,但可变的价值

所以我需要过滤除了一个之外的所有的值。 我使用了这部分代码,它显然会过滤一切,但“比利时”,但我需要在那里变化。

Dim myValue As Variant myValue = InputBox("Which country to exclude? ") Range("AB1").Select ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:="<>Belgium" 

对于我在特定国家过滤的filter版本,variables工作得很好:

 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 

那么为什么这不起作用:

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

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

“<>”不是一个操作符(这是你在“不工作”的例子中是如何使用它的),而是需要成为你传递给AutoFilter的string的一部分(这是你怎么做的在第一个例子中)。

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