【问题标题】:Removing single autofilter from list从列表中删除单个自动过滤器
【发布时间】:2015-12-09 13:19:52
【问题描述】:

我有一个过滤列表,并希望根据从单元格 C11 的列表框中选择的内容回滚过滤条件。因为要过滤多个列,所以简单地使用 .autofilter = false 不会达到预期的效果,因为它会回滚所有过滤器,而不仅仅是针对给定的列。有没有办法关闭单列过滤器?

If Target.Address = "$C$11" Then
    If Range("C11").Value = "All" Then
        With Sheets("Provider Front End")
        .Range("B17:D17").AutoFilter field:=3, Critieria1:= 'turn off this single field?
    End With
Else
    With Sheets("Provider Front End")
        .Range("B17:D17").AutoFilter
        .Range("B17:D17").AutoFilter field:=3, Criteria1:=Range("C11").Value
    End With
End If
End If

【问题讨论】:

    标签: excel autofilter vba


    【解决方案1】:

    要关闭特定字段的过滤器,请将 Criteria1 参数留空。

    .Range("B17:D17").AutoFilter field:=3

    例如,以下代码采用以下步骤:

    1. 过滤第一列的值12
    2. 过滤第二列的值14
    3. 从第二列中删除过滤器,因此它回到第一列中的 12。

    示例代码:

    Range("A1:D6").AutoFilter 1, 12
    Range("A1:D6").AutoFilter 2, 14
    Range("A1:D6").AutoFilter 2
    

    【讨论】:

    • 工作就像一个魅力谢谢斯科特!数字它是那么简单,我倾向于过于复杂......
    猜你喜欢
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2013-09-09
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多