我有一个工作簿,它目前使用链接到另一个工作簿的常规单元格公式链接到其他 40 个工作簿。这使得打开主工作簿的速度非常慢。如果我编写 vba 代码来读取其他工作簿中的数据,速度会更快吗?
答案1
我认为可以,但这取决于何时/如何需要这些链接文件中的数据。
如果您在打开电子表格时立即需要链接文件中的数据,那么通过检查源文件并对其进行优化,您可能会获得少量的提升。
如果某些数据直到稍后才需要,或者基于临时需求或时间安排,您可以使用按钮或控件链接这些文件,以便仅在需要时检索这些数据。通过从链接中删除这些数据源并“按需”检索它们,您最终可能会加快电子表格的初始加载时间。
基本上,检查每个源文件,问自己何时主表中需要该文件中的数据,然后根据此选择如何链接它。
答案2
从理论上和实践上来说,确实有一种方法可以按需加载书籍,但代码很长。这可以通过诸如更改表格之类的操作来实现,或者只需点击按钮即可刷新表格的某些部分。
但是您提出这个问题的方式看起来更像是一个中央数据库和一个 Excel 表视图。这反过来又让您真正考虑使用 Microsoft Access 并使用真正的数据库。您即将转向一种更有效的工作和读取数据的方式,但这取决于它的结构。
如果您的工作表(或本例中的工作表)具有大量格式和“易失性计算”(如,那么=sum("b3:b6")
它们将对您的设备造成巨大负担。尝试将所有内容存储为无格式的值。