我的Excel应用程序创建指向其他Excel文件的链接。创建一个单元格的链接大约需要1秒钟,但我有几百个单元格要链接,所以它很慢。 无论源文件是打开还是关闭,速度都没有区别。但是,我注意到,手动创建链接(例如,通过手动将包含链接的公式复制并粘贴到其他单元格中)在打开源文件时要快得多。
在我的程序中,我已配置 Application.Calculation是手动而不是自动。
我尝试以两种方式完成链接(请注意这不是真正的代码,但我希望它显示我的意思):
1。
使用,将公式链接从Range("A1")
复制到外部源
在范围内的每个Cell
上的foreach循环:
Cell.FormulaR1C1 = Range("A1").FormulaR1C1
2。
将公式从Range("A1")
复制到另一个范围,而不使用foreach循环:
Range("thisIsMyTargetRange").FormulaR1C1 = Range("A1").FormulaR1C1
这两种方法都同样慢,正如我所说,我已经检查了上述两种方法,并打开了和源文件。
有没有办法加快速度?有没有人对Excel 2003中的链接机制有足够的了解,提供有关如何提高链接性能的建议?
答案 0 :(得分:1)
有公式是否相关?如果不使用.value
而不是.formular1c1
。
此外,如果范围大小相同,则使用范围副本而不是循环。例如
range(a1:a500).value = range(a1:a500)
添加了替代方法:
另外,另一种方法是使用数据导入功能创建一个表,该功能在文件打开时刷新,如果表单是你所使用的。然后,如果您想要该表的位,请使用导入表/表中的数据。这将在打开文件时保持更新或链接仅一个大导入。
答案 1 :(得分:0)
我不得不这样做几个月一次的数据。
打开要从中复制数据的文档。然后将包含该数据的任何工作表复制到您正在使用的工作簿中。从中获取数据,然后从工作簿中删除这些工作表。在宏中执行此操作,以便可以快速重复地完成。