【发布时间】:2023-03-12 15:35:01
【问题描述】:
我需要在运行某个宏之前清除工作表中的所有活动过滤器,如果有一个活动过滤器,这条线就可以正常工作
If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData
但是,如果没有选择过滤器,则会返回错误
Runtime error '1004';
ShowAllData method of Worksheet class failed
我从这个问题的答案中得到了那个代码 Excel 2013 VBA Clear All Filters macro
但是,如果没有过滤器处于活动状态,该问题并未解释如何忽略该行。
如果当前没有应用有效的过滤器,我如何忽略此行?
编辑
例如,所有列标题都已自动过滤,因此如果我的工作表被“女性”过滤,例如,我需要在运行宏之前删除该过滤器,但是如果没有应用过滤器,只需将宏运行为正常
【问题讨论】:
-
那设置什么样的过滤器呢?您说您需要如果没有有效过滤器,则清除所有有效过滤器。对我来说似乎是个悖论。
-
如果有活动过滤器,我需要清除所有活动过滤器,如果没有,则忽略该 VBA 行。所有列标题都已自动过滤,因此如果我的工作表被“女性”过滤,例如我需要在运行宏之前删除该过滤器,但是如果没有应用过滤器,只需正常运行宏。