excel - If Function - 如果什么都没有,什么也不做

标签 excel if-statement runtime-error vba

我有以下代码可以在不删除过滤器功能的情况下摆脱工作表上应用的所有过滤器。

If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData

如果应用了过滤器,这将非常有效,但是有时不会应用过滤器,我将不得不运行它并且它会出错。错误代码是 1004 并且是 - '工作表类的 ShowAllData 方法失败'。

我怎样才能做到这一点,这样就不会发生这种情况,所以如果没有过滤器,它就不会出错。

谢谢

最佳答案

ActiveSheet.ShowAllData 如果有,则删除当前过滤器。它只是“显示数据”,但过滤器仍然存在,以便您最终可以使用 ActiveSheet.AutoFilter.ApplyFilter 再次应用它。 .

因此,如果您调用 ShowAllData两次,使用未删除的现有过滤器,它将出错。

如果您想明确删除过滤器,或者只是确保没有过滤器,最好使用这个:

ActiveSheet.AutoFilterMode = False

无论是否有过滤器,这都不会出错。所以这是清除先前过滤器(如果有的话)的方法。顺便说一句,它不需要任何检查。

关于excel - If Function - 如果什么都没有,什么也不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45084525/

相关文章:

java - 为什么 else 语句没有初始化?

php - 为什么当目录在主目录中时禁止 apache 抛出?

error-handling - ANTLR 4 : How to generate a parse error from an embedded action?

c++ - 从类中运行线程

vba - 当另一个工作表的公式结果发生变化时如何突出显示单元格?

excel - 如何找到列中的第一个非空白单元格?

javascript - "If""else"语句有语法错误

c# - 是否可以以编程方式密码保护 excel 电子表格?

vba - Excel VBA - 如何插入没有公式的普通值?

mysql - sql if in insert statement without select