Excel自动过滤除了变量值

时间:2015-06-29 14:37:57

标签: excel vba 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"

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

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

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

1 个答案:

答案 0 :(得分:4)

“&lt;&gt;”不是运算符(这是你在“不工作”的例子中尝试使用它的方式),而是需要成为传递给AutoFilter的字符串的一部分(这是你在第一个例子中所做的那样) 。)

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