Vba Excel自动筛选除变量值以外的所有值

Vba Excel自动筛选除变量值以外的所有值,vba,excel,autofilter,Vba,Excel,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 exclude? ")

Range("AB1").Select
ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:="<>Belgium"
那么,为什么这不起作用:

ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:= <>myValue
ActiveSheet.Range($B$1:$BY$319696”)。自动筛选字段:=27,标准1:=myValue
我也不知道为什么它是这样构造的,它是从记录宏生成的,特别是
Criteria1:=_
myValue

“”不是运算符(这是您在“不工作”示例中尝试使用它的方式),而是需要成为传递给自动筛选的字符串的一部分(这是您在第一个工作示例中的操作方式)


ActiveSheet.Range(“$B$1:$BY$319696”)。自动筛选字段:=27,标准1:=”&myValue
应该可以工作。

下划线
\uuuquot>允许代码在一行内中断。VBA的特点是,每个可执行语句都包含在一行中,除非用
\uu
继续。宏记录器喜欢添加额外的参数,并将它们跨行拆分以提高可读性。
ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:= <>myValue