簡體   English   中英

Excel VBA:在具有許多公式的工作簿中加載數據的有效方法

[英]Excel VBA: efficient way to load data in a workbook with a lot of formulas

我有一個Excel VBA代碼,可以讀取主數據,將每個案例/循環的數據加載到工作簿中,然后通過大量公式(無VBA代碼)進行大量計算。 期望的結果是計算的輸出。 該代碼循環遍歷主數據中的所有情況。

所以這就是問題所在。 我在每個循環中使用了多個“復制和粘貼”操作來將數據加載到工作簿中,但是運行時間比我預期的要長得多,導致Excel無法響應。 請注意,我已經關閉了Excel中的自動計算,並在VBA代碼中添加了工作簿“計算”觸發器,以避免每次粘貼操作時都完全更新工作簿。

有人可以建議是否直接在wb中設置單元格=主數據中的單元格將加快還是降低代碼速度? 還是有人建議使用更有效的數據加載方式?

感謝您在發送回復之前所做的努力。

如評論中所述,不使用.Select可以提高宏的速度。 此外,使用VBA進行復制粘貼操作的確確實要慢一些,您應該分配FromWorksheet.Range("CopyRange").Value = ToWorksheet.Range("PasteRange").Value 另外,始終有助於在開始時添加以下行:

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
Application.DisplayAlerts = False

並在最后將它們重新激活:

Application.DisplayAlerts = True
Application.EnableEvents = True
Application.DisplayStatusBar = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

關於此有很多信息,例如此鏈接

暫無
暫無

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

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