【发布时间】:2016-07-20 18:33:13
【问题描述】:
我一直在尝试了解同事在网上某处找到的宏,用于根据所选条件过滤一组数据。部分代码是一个 IF 语句,检查 AutoFilterMode 是否关闭,如果发现它关闭,则将其打开,这样
'Turn on filter if not already turned on
If Sheets("ORDER DATA").AutoFilterMode = False Then rng.AutoFilter
下一行使用 .AdvancedFilter 根据所选条件过滤数据(称为过滤器的范围)
rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=filter, Unique:=True
我比较强迫症,想要在我的代码中保持清理,所以我想我会去掉第一个语句,因为它似乎没有必要。消除它后我发现,如果消除第一个语句,过滤过程需要更长的时间才能运行。
我在网上搜索了高低,但始终无法找到 AutoFilter 和 AdvancedFilter 之间的关系。
所以我的问题是:为什么在未首次打开 AutoFilter 时 AdvancedFilter 需要这么长时间才能运行?
【问题讨论】:
-
也许,只是也许,当
Autofilter打开时,Excel 会保留某种缓存,然后AdvancedFilter使用该缓存。
标签: vba excel autofilter