首页 > 解决方案 > 在本地复制工作表数据是否比将单元格链接到外部文件更适合内存消耗

问题描述

我目前正在处理由操作员在机器上填写的 Excel 表格。

由于文件是从服务器打开的,因此 Excel 计算存在一些 RAM 效率问题,而且由于我是一名学生工程师,而不是计算机程序专家,我不知道如何衡量不同类型编码的影响。

我想知道是否在每个文件打开时都复制我的参考表(请注意,这不是真正的代码,它用于解释其背后的逻辑):

Sub workbook_open()
If ThisWorkbook.("Reference sheet") <> \\Referencefile.xlsx("Reference Sheet")
Copy-paste on ThisWorbook.xlsx the data from Referencefile.xlsx
End Sub

比例如这个更高效:

='\\Reference\[Referencefile.xlsx]Reference Sheet'!A98

在我的牢房里。(请注意,“referencefiles.xlsx”是一个 30k 行的怪物,需要几秒钟才能打开。)

将“参考表”数据复制到本地(相同的文件而不是外部文件)将使我的计算也“本地化”,我想这会使我的代码更轻服务器 RAM 明智。但另一方面,每次开口都必须比较巨大的数据表似乎也很重 Ram 明智。

如果没有“确切”答案,有没有办法用代码行计算代码的内存消耗?

谢谢,

标签: excelvbamemory-managementimport

解决方案


复制时,您必须打开两个工作簿,然后将数据从一个地方移动到另一个地方。这可能会导致在内存中有 2 个相同数据的副本。复制操作完成后,这与同时打开它们相同。我相信直接引用会更快,因为它避免了额外的复制步骤。

您可以使用资源监视器来验证这一点: https ://www.thewindowsclub.com/use-resource-monitor-windows-10

然后执行您的两项任务并查看差异。


推荐阅读