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:="&lt;&gt;" &amp; someVariable。这假设有一个名为someVariable 的变量。如果您需要按日期过滤,您可能需要使用CDbl(someVariable),因为如果我理解正确,以编程方式过滤日期可能会有点尴尬。 工作得很好!谢谢!

以上是关于VBA自动过滤器不等于的主要内容,如果未能解决你的问题,请参考以下文章

VBA - 自动过滤器 - 总是隐藏确切的值

Vba 到基于多列的自动过滤器

在具有德国区域设置的计算机上使用 VBA 自动过滤器过滤日期问题

“ Range类的VBA自动过滤器方法失败”,今天开始工作的代码出现错误

复制自动过滤范围,vba excel

VBA 宏搜索自动筛选