我有一个庞大的笨重的工作簿,我被要求修改。
它有大约60个带有项目财务的选项卡和几张使用INDIRECT从中提取数据的工作表。我无法摆脱INDIRECTS(这不是我的工作簿)。大约有200行,其中有20列这些对象。
项目财务每月只更新一次,并且他们在一个体面的数据表(千行/月)上使用SUMIFS。 因此,由于这些不需要重新计算,我尝试使用Calculate sheet Shift-F9。这似乎需要很长时间。
我对它进行了一系列测试。如果我依次计算每张纸并用VBA计时,我正在处理的纸张需要1.25秒。所有纸张的总时间为7秒。
但是,如果我在单张纸上运行定时sheet.calculate,则需要10秒钟。
我知道由于INDIRECT的波动性,这正在减慢它的速度,因为XL只计算一个处理器线程,如果它计算一个间接。看看有关它的MS网页,似乎XL所做的第一件事就是查看依赖树并对其进行优化。是因为当我运行sheet.calculate(或shift-F9)时因为依赖树没有优化?
发生了什么事,单张表比完整的工作簿花费更长时间似乎很疯狂。