我想知道在使用外部链接与打开电子表格和复制单元格(使用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并强制更新。要测试文件打开方法,我只需打开并关闭源文件。
我希望加快因网络带宽较低而出现问题的流程。我已经探索了各种选项,只想了解这是否有效。我搜索了这个主题,有些人说外部链接可能会导致性能问题,而有些人却说不然。我想更好地了解外部链接背后的机制,以便我能够理解实施时会发生什么。
有什么想法吗?
答案 0 :(得分:1)
这项工作要多得多,但是从XML文件读取/写入数据(使用MSXML)可以解决性能问题。这是我在带宽一直很低的某些情况下被迫采用的路线。
VBA检索数据和运行计算的速度比使用多个链接要快得多。视情况而定;你可以在工作簿开放事件,甚至特定的变更事件(ComboBox等)上执行此操作,因为你只使用数据库。