VBA - 自动过滤器 - 始终隐藏精确值

时间:2017-11-03 13:55:25

标签: excel vba excel-vba filtering

我有autofilter的代码,它总是选择" TOP"和" TOP 100"在R栏中:

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列中隐藏零。我的意思是,我知道,我必须将值放入" Criteria",我想过滤。但这些值将是变量,但总是会有0,我需要隐藏它。有谁知道,请问怎么做?

非常感谢!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

此代码还将从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

答案 2 :(得分:0)

尝试:

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