私は、選択した条件に基づいてデータのセットをフィルタリングするために、どこかの同僚がオンラインで見つけたマクロを理解しようとしています。コードの一部は、AutoFilterModeがオフになっているかどうかをチェックするIF文ですのでアドバンストフィルタマクロは、オートフィルタをオフにしてゆっくり実行します。
'Turn on filter if not already turned on
If Sheets("ORDER DATA").AutoFilterMode = False Then rng.AutoFilter
非常に次の行が上基づいてデータをフィルタリングする.AdvancedFilterを使用して、オフであることが判明した場合、それを上のトグル私はそれがなかったのように私は、最初の文を取り除くだろうと考えていたので、私のコードでクリーンアップものを維持したいについて比較的OCDだ選択した条件(フィルタと呼ばれる範囲)
rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=filter, Unique:=True
必要と思われる。これを取り除いてから私が見つけたのは、最初のステートメントが削除された場合にフィルタ処理プロセスを実行するにはかなりの時間がかかります。
私は高低のオンラインを検索しましたが、オートフィルタとアドバンストフィルタの関係は何か分かりませんでした。
私の質問はこうです:なぜアドバンストフィルタは、オートフィルタが最初にオンになっていないときに実行するのに時間がかかりますか?
「Autofilter」がオンになっているときにExcelが何らかのキャッシュを保持していて、次に「AdvancedFilter」がそのキャッシュを使用している可能性があります。 – litelite