用于检测自动过滤器的if语句,即使没有过滤任何内容

Hot*_*uts 3 excel vba excel-2007 excel-vba

我已经搜索了此内容,但尚未找到任何内容。为了澄清,我正在寻找一个简单的if语句,用于在不存在自动过滤器的情况下应用自动过滤器,或者在已经存在的情况下不执行任何操作。

我认为解决方案是:

If ActiveSheet.FilterMode = False Then
    Selection.AutoFilter
end if
Run Code Online (Sandbox Code Playgroud)

但这只会检测过滤的数据。如果已经有一个过滤器并且执行此行...

Selection.AutoFilter
Run Code Online (Sandbox Code Playgroud)

过滤器消失了,我的代码表现不佳。有一个简单的解决方案吗?

Ror*_*ory 7

您接近:

If ActiveSheet.AutoFilterMode = False Then Selection.AutoFilter
Run Code Online (Sandbox Code Playgroud)