簡體   English   中英

Excel VBA減少了自動篩選宏的處理時間

[英]Excel VBA reduce processing time of Autofilter Macro

我有一本帶有1個工作表的工作簿,其中包含14k行和36列。 第24到36列包含公式(ao find和vlookup公式)。

計算設置為手動。

我創建了一個測試宏,該宏在數據集上設置了自動過濾器,並包含4個過濾器條件(請參見下面的代碼)。 奇怪的是,當我第一次運行此宏時,它需要109秒才能運行,第二次運行時,它需要17秒,而第三次和連續時間是0.3秒左右。 我覺得這真的很奇怪。 如何發生這種情況,我該怎么做才能第一次獲得0.3秒?

謝謝。

Sub test() 
Dim ws As Worksheet
Dim ws As Worksheet    
Dim rng As Range    
Dim PG()

PG = Array(“441”, “445”, “446”, “447”)
Set ws = Worksheets(“Notificaties”)
ws.AutoFilterMode = False
Set rng = ws.Range(“A1”)
Set rng = ws.Range(rng, rng.End(xlToRight))

With rng    
.AutoFilter    
.AutoFilter Field:=4, Criteria1:=”TWAP*”    
.AutoFilter Field:=29, Criteria1:=”<>*II*”    
.AutoFilter Field:=30, Criteria1:=”TRUE”    
.AutoFilter Field:=22, Criteria1:=PG, Operator:=xlFilterValues
End With

End Sub

如果尚未更新公式,則即使使用Application.Calculation = xlCalculationManual,也將通過第一個自動過濾器命令對其進行更新。 因此,在使用自動過濾器之前,您可能需要使用類似以下命令的命令來更新公式:

Application.Calculation = xlCalculationAutomatic

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM