热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Excel2013VBA清除活动过滤器

如何解决《Excel2013VBA清除活动过滤器》经验,为你挑选了2个好方法。

我需要在运行某个宏之前清除工作表中的所有活动过滤器,如果有活动过滤器,此行可以正常工作

If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData

但是,如果未选择过滤器,则返回错误

Runtime error '1004';
ShowAllData method of Worksheet class failed

我从这个问题的答案得到了这个代码 Excel 2013 VBA清除所有过滤器宏

但是,如果没有过滤器处于活动状态,则该问题不能解释如何忽略该行.

如果没有应用当前有效的过滤器,如何忽略此行?

编辑

例如,所有列标题都已自动过滤,因此如果我的工作表被"女性"过滤,例如我需要在运行宏之前删除该过滤器,但是如果没有应用过滤器,则只需正常运行宏



1> Paul Kelly..:

使用FilterMode而不是AutoFilterMode.我经常处理过滤器,这段代码工作正常.

If ActiveSheet.FilterMode Then
    ActiveSheet.ShowAllData
End If

确保工作表不受保护,因为这也会产生1004错误.



2> 小智..:

我真诚地钦佩你为特定环境制定计划的愿望,但我必须承认,实现这一目标的最快捷方式是On Error Resume Next.

On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0

您不应该破坏某些东西来检查它是否存在,但在VBA中偶尔是最好的追索权.就个人而言,我作为编程方法排On Error Resume Next在那里SendKeys.

上述方法不要求您检查是否.AutoFilterModeTrue.


推荐阅读
author-avatar
Matzoh
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有