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

Posted

技术标签:

【中文标题】VBA - 自动过滤器 - 总是隐藏确切的值【英文标题】:VBA - autofilter - always hide exact value 【发布时间】:2018-04-16 06:54:28 【问题描述】:

我有自动过滤器的代码,它总是在 R 列中选择“TOP”和“TOP 100”:

Sub Filter()

With Worksheets("Overview")
Range("A1:S1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$S$9999").AutoFilter Field:=18, Criteria1:="=TOP", _
        Operator:=xlOr, Criteria2:="=TOP 100"
End With
End Sub

但是我需要添加另一个过滤器,它总是会在 P 列中隐藏零。我的意思是,我知道,我必须将值放入我想过滤的“标准”中。但是这些值将是变量,但总会有 0,我需要隐藏它。请问有谁知道怎么做?

非常感谢!

【问题讨论】:

【参考方案1】:

请尝试Criteria1:="<>0" 过滤除 0 以外的所有内容

【讨论】:

对不起,我解释错了。我想过滤除 0 以外的所有值。 好的,我已经改变了答案……现在可以了。【参考方案2】:

此代码还将从 P 列中过滤掉 0:

Sub Filter()

    With Worksheets("Overview").Range("$A$1:$S$9999")
        .AutoFilter Field:=18, Criteria1:="=TOP", Operator:=xlOr, Criteria2:="=TOP 100"
        .AutoFilter Field:=16, Criteria1:="<>0"
    End With

End Sub

【讨论】:

【参考方案3】:

试试:

Sub Filtre()
    Dim r As Range

    Set r = Worksheets("Overview").Range("A:S")

    r.AutoFilter Field:=18, Criteria1:="=TOP", Operator:=xlOr, Criteria2:="=TOP 100"
    r.AutoFilter Field:=16, Criteria1:="<>0", Operator:=xlAnd
End Sub

【讨论】:

以上是关于VBA - 自动过滤器 - 总是隐藏确切的值的主要内容,如果未能解决你的问题,请参考以下文章

VBA自动过滤复制值,去重并粘贴到其他工作表中

VBA过滤器隐藏过去的fdates不起作用

VBA自动过滤器不等于

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

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

EXCEL VBA 不完全匹配自动过滤器