[英]Excel VBA: More efficient way to compare values with formulas for large range
[英]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.