我有一个 Excel 模型,其中主要元素是一个大型结构化表格,其中包含大约 2000 列和 200 行。每列包含一个与每行相同的公式。作为 XLSB 文件,工作簿大约 11MB,打开需要 45 秒。公式本身非常高效 - 工作簿的完整计算在 1 秒内完成。
如果我将此模型拆分为两个,使用同一工作簿中的两个独立工作表(它们之间有引用),性能不会发生变化。但是,当我将这些工作表拆分为两个工作簿,并使用链接作为外部引用时,我可以在大约 10 秒内打开两个文件并刷新链接。
为什么单独的工作簿可以提高性能?在单个工作簿中可以实现相同的性能吗?
编辑:可以在这里找到经过清理的工作簿:https://drive.google.com/drive/folders/0Bz0YVEO1u0jOaGtpS1ZnR3kzRWc?usp=sharing Model1.xlsb 和 Model2.xlsb 是分割文件。要创建 Model1and2.xlsb,我所做的就是将 Model2 中的两个工作表移动到 Model1 中。
编辑 2:设置Workbook.ForceFullCalculation=TRUE
解决了这个问题。这肯定与加载依赖关系树的时间有关。我已将 Model1and2-ForceFullCalculation.xlsb 添加到共享文件夹中以进行演示。