Excel VBA:在具有许多公式的工作簿中加载数据的有效方法

时间:2018-06-25 16:06:03

标签: excel vba excel-vba

我有一个Excel VBA代码,该代码读取主数据,将每个案例/循环的数据加载到工作簿中,然后通过大量公式(无VBA代码)进行大量计算。期望的结果是计算的输出。该代码循环遍历主数据中的所有情况。

这就是问题所在。我在每个循环中使用了多个“复制和粘贴”操作来将数据加载到工作簿中,但是运行时间比我预期的要长得多,导致Excel无法响应。请注意,我已经关闭了Excel中的自动计算,并在VBA代码中添加了工作簿“计算”触发器,以避免每次粘贴操作时都完全更新工作簿。

有人可以建议是否直接在wb中设置单元格=主数据中的单元格将加快还是降低代码速度?还是有人建议使用更有效的数据加载方式?

感谢您在发送答复之前所做的努力。

1 个答案:

答案 0 :(得分:0)

如评论中所述,不使用.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

关于此的信息很多,例如link