4

我的 Excel 应用程序创建指向其他 Excel 文件的链接。为 1 个单元创建链接大约需要 1 秒,但我有数百个单元要链接,所以速度非常慢。源文件打开或关闭速度没有区别。然而,我注意到在打开源文件时手动创建链接(例如,通过手动将包含链接的公式复制并粘贴到其他单元格中)要快得多。

在我的程序中,我将 Application.Calculation 配置为手动而不是自动。

我尝试以两种方式完成链接(请注意这不是真正的代码,但我希望它能说明我的意思):

1. 将公式链接复制到外部源,对范围内Range("A1")的每个使用 foreach 循环Cell

Cell.FormulaR1C1 = Range("A1").FormulaR1C1

2. 将公式从复制Range("A1")到另一个范围,而不使用 foreach 循环:

Range("thisIsMyTargetRange").FormulaR1C1 = Range("A1").FormulaR1C1

两种方法都同样慢,正如我所说,我已经在打开和关闭源文件的情况下检查了上述两种方法。

有什么办法可以加快这个速度吗?有没有人足够了解 Excel 2003 中的链接机制来提供有关如何提高链接性能的建议?

4

2 回答 2

1

有公式有关系吗?如果不使用.value代替.formular1c1.

此外,如果范围大小相同,则使用范围副本而不是循环。例如

range(a1:a500).value = range(a1:a500)

添加了替代方法:

此外,另一种方法是使用数据导入功能创建一个表格,该功能在文件打开时刷新,如果您需要一张工作表。然后,如果您想要该表的某些部分,请使用导入表/表中的数据。这将在打开文件时保持更新或仅链接到一个大型导入。

于 2013-02-16T00:15:25.940 回答
0

我不得不这样做,以获取大约每秒一次的数月数据。

打开要从中复制数据的文档。然后将包含该数据的所有工作表复制到您正在使用的工作簿中。从中获取数据,然后从工作簿中删除这些工作表。在宏中执行此操作,以便可以快速重复地完成。

于 2013-03-07T19:46:51.960 回答