VBA自动过滤器不等于
Posted
技术标签:
【中文标题】VBA自动过滤器不等于【英文标题】:VBA Autofilter not equal to 【发布时间】:2022-01-23 18:43:42 【问题描述】:Sub Macro1()
‘Remove all except validated
ActiveSheet.Range("$A$1:$H$5202").AutoFilter field:=8, Criteria1:<>"Validated"
Activesheet.Range("$A$2:$O$99999").SpecialCells(xlCellTypeVisible).Select
Selection.EntireRow.Delete
ActiveSheet.ShowAllData
End sub
如何在 VBA 中替换“不等于”? 不起作用。
【问题讨论】:
【参考方案1】:如果您希望过滤条件排除“已验证”,请尝试更改此行:
ActiveSheet.Range("$A$1:$H$5202").AutoFilter field:=8, Criteria1:<>"Validated"
到
ActiveSheet.Range("$A$1:$H$5202").AutoFilter field:=8, Criteria1:="<>Validated"
请注意,Criteria:=
中的 =
与您的过滤条件无关。 (它与 VBA 以及如何为命名参数提供参数有关。)
【讨论】:
我明白了。感谢您的帮助。 如果标准本身是一个变量,它将如何应用? @Antoniosantos,根据变量类型,您可能可以执行以下操作:ActiveSheet.Range("$A$1:$H$5202").AutoFilter Field:=8, Criteria1:="<>" & someVariable
。这假设有一个名为someVariable
的变量。如果您需要按日期过滤,您可能需要使用CDbl(someVariable)
,因为如果我理解正确,以编程方式过滤日期可能会有点尴尬。
工作得很好!谢谢!以上是关于VBA自动过滤器不等于的主要内容,如果未能解决你的问题,请参考以下文章
在具有德国区域设置的计算机上使用 VBA 自动过滤器过滤日期问题