Excel:使用外部链接可以提高性能吗?

时间:2013-04-01 22:21:01

标签: performance excel external-links

我想知道在使用外部链接与打开电子表格和复制单元格(使用VBA)时是否有性能提升。

我认为Excel必须同样打开文件,但是当我使用以下代码进行测试时,外部链接会更快出现:

Dim t As Double
Dim rng As Range

For Each rng In shtId.Range("A1:A5")
    t = Now
    ThisWorkbook.Names("rngID").RefersToRange = rng
    ThisWorkbook.UpdateLink "H:\manualData.xlsx", xlExcelLinks
    Debug.Print "link: " & Format(Now - t, "######.0000000")

    t = Now
    Workbooks.Open "H:\manualData.xlsx", readonly:=True
    ActiveWorkbook.Close False
    Debug.Print "open: " & Format(Now - t, "######.0000000")
Next


Results:

link: .0000116
open: .0000231
link: .0000116
open: .0000347
link: .0000000
open: .0000347
link: .0000000
open: .0000347
link: .0000000
open: .0000347

工作簿具有一系列单元格,其中查找公式键入ID字段。这些公式有外部链接。为了测试它,我更改了ID并强制更新。要测试文件打开方法,我只需打开并关闭源文件。

我希望加快因网络带宽较低而出现问题的流程。我已经探索了各种选项,只想了解这是否有效。我搜索了这个主题,有些人说外部链接可能会导致性能问题,而有些人却说不然。我想更好地了解外部链接背后的机制,以便我能够理解实施时会发生什么。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这项工作要多得多,但是从XML文件读取/写入数据(使用MSXML)可以解决性能问题。这是我在带宽一直很低的某些情况下被迫采用的路线。

VBA检索数据和运行计算的速度比使用多个链接要快得多。视情况而定;你可以在工作簿开放事件,甚至特定的变更事件(ComboBox等)上执行此操作,因为你只使用数据库。