vba - 图表会减慢我在大型 Excel 文件中的计算速度吗?
问题描述
我正在使用一个巨大的 excel 文件,该文件使用一组宏进行更新。在 excel 文件中还有大量图表,以确保轻松检查输出。
但是,当我重新计算工作簿时,速度非常慢。
我的问题是:这些图表是否有助于减慢模型的计算速度?如果是这样,是否有一种快速的 VBA 方法来仅在整体计算结束时更新图表?
解决方案
如果没有看到您的工作簿,这很难回答。
最有可能的是,减慢重新计算速度的不是图表(就是您所说的“图表”),而是效率低下的公式。
检查图表数据源。如果它们指向工作表单元格,那么一切都很好。如果它们指向命名范围/命名公式,请检查这些公式是什么。
重新计算受以下因素影响
- 不稳定的公式,例如 Today()、Now()、Indirect()、Offset() 和其他一些
- 不必要地重复已经执行的计算的低效公式,通常在运行总计中完成
这方面的例子是
=Sum(A$1:A2) 复制下来,就像在这个屏幕截图中一样
在每一行中,计算从第 1 行开始,一直到当前行。这是浪费精力。
一个更有效的公式在 C 列中,其中仅将上一行的值添加到当前行的值中。
=SUM(C1,A2)
这些细节可以产生很大的不同。
有关更多信息,您可能需要参考 Charles Williams 的网站http://www.decisionmodels.com/calcsecrets.htm以及从那里链接的页面。
这是一个复杂的主题,可能无法通过简单回答看似简单的问题来解决。
推荐阅读
- javascript - 我应该如何将 *.eslintrc* 更新为 ESLint 查看更改?
- typo3 - 是否可以在分面搜索 (ke_search) 中索引自定义文档?
- php - 如何重复 php "if" 20 次?
- c++ - 函数模板参数推导(类 vs 函数模板)
- jenkins - 使用jenkins管道共享库时,sh ''' '''中的函数参数将为null
- javascript - 在javascript中删除字符串中的文件扩展名
- javascript - 异步/等待无法按预期工作
- arrays - 苗条框架中的格式错误的 JSON
- reactjs - 使用 StackNavigator 将 Native 从子组件反应到父组件
- java - 创建名为“scopedTarget.jobRepository”的 bean 时出错:范围“step”对于当前线程无效;考虑为 th 定义一个作用域代理