我有以下代码可以在不删除过滤器功能的情况下摆脱工作表上应用的所有过滤器。
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/