从列表中删除单个自动过滤器

时间:2015-12-09 13:19:53

标签: excel-vba autofilter vba excel

我有一个过滤列表,并希望根据从单元格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

1 个答案:

答案 0 :(得分:2)

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

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

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

  1. 过滤值12
  2. 的第一列
  3. 过滤值14
  4. 的第二列
  5. 关闭第二列的过滤器,使其回到第一列的12
  6. 示例代码:

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