VBA 自动过滤器不等于

che*_* ng 3 excel vba basic filter

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
Run Code Online (Sandbox Code Playgroud)

如何替换VBA中的“不等于”?<> 不起作用。

chi*_*lin 8

如果您希望过滤条件排除“已验证”,请尝试更改此行:

ActiveSheet.Range("$A$1:$H$5202").AutoFilter field:=8, Criteria1:<>"Validated"
Run Code Online (Sandbox Code Playgroud)

ActiveSheet.Range("$A$1:$H$5202").AutoFilter field:=8, Criteria1:="<>Validated"
Run Code Online (Sandbox Code Playgroud)

请注意,=inCriteria:=与您的过滤条件没有任何关系。(它与 VBA 以及如何为命名参数提供参数有关。)

  • @AntonioSantos,根据变量类型,您可能可以执行以下操作:`ActiveSheet.Range("$A$1:$H$5202").AutoFilter Field:=8, Criteria1:="&lt;&gt;" &amp; someVariable` 。这假设有一个名为“someVariable”的变量。如果您需要按日期过滤,则可能需要使用“CDbl(someVariable)”,因为如果我理解正确的话,以编程方式过滤日期可能会有点尴尬。 (2认同)