如果 Excel VBA 不存在,则添加自动过滤器

Tim*_*son 4 excel vba excel-2010

如何检查范围是否已经有自动过滤器,如果没有,则应用它们。

目前我只是在使用

Range("A1:N1").AutoFilter
Run Code Online (Sandbox Code Playgroud)

但是,如果该范围内已启用过滤器,则会将其关闭。

我已经搜索过这个并找到了许多清除和重置自动过滤器的解决方案,但没有一个关于实际检查过滤器是否实际应用的解决方案。

小智 7

您当前的解决方案应该可以正常工作,但您可以使用 If 语句,例如

If Sheets(curSheet).AutoFilterMode = True Then

'Do Nothing

Else

Sheets(curSheet).Range("A1").AutoFilter

End If
Run Code Online (Sandbox Code Playgroud)


Tim*_*son 6

我没有检查,而是在重新应用之前关闭了自动筛选。

Sheets(curSheet).AutoFilterMode = False
Range("A1:N1").AutoFilter
Run Code Online (Sandbox Code Playgroud)