9

我想知道使用外部链接与打开电子表格和复制单元格(使用 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 并强制更新。为了测试文件打开方法,我只是打开和关闭源文件。

我正在寻求加快由于网络带宽低而出现问题的进程。我已经探索了各种选项,只是想了解这是否有效。我搜索了这个主题,有些人说外部链接可能会导致性能问题,而有些人则不然。我想更好地了解外部链接背后的机制,以便了解实施时的预期。

有什么想法吗?

4

1 回答 1

1

这是更多的工作,但是从/向 XML 文件读取/写入数据(使用 MSXML)将解决性能问题。这是我在某些带宽较低的情况下被迫采用的路线。

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

于 2013-12-13T10:07:53.283 回答