如何使用vba处理自动过滤器

时间:2016-03-04 16:17:40

标签: excel-vba vba excel

enter image description here

我在ActiveSheet.ShowAllData行下面的行代码有问题,因为有时我的工作表有自动过滤器,有时关闭。有没有办法满足这个?

enter image description here

2 个答案:

答案 0 :(得分:1)

考虑:

Sub Framm()
    With ActiveSheet
        If (.AutoFilterMode And .FilterMode) Or .FilterMode Then
            .ShowAllData
        End If
    End With
End Sub

请注意,这实际上并不是删除自动过滤器,只会删除所有取消选择。它还会:

  • 如果所有数据都已显示
  • ,则不是barf
  • 如果不存在过滤,则不是barf。

答案 1 :(得分:0)

如果将代码直接粘贴到问题中而不是显示图片,则会更容易 - 无法将图片复制并粘贴到VBE中。

在清除过滤器之前,您需要检查是否有任何过滤器:

If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData