excel - 在本地复制工作表数据是否比将单元格链接到外部文件更适合内存消耗
问题描述
我目前正在处理由操作员在机器上填写的 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 明智。
如果没有“确切”答案,有没有办法用代码行计算代码的内存消耗?
谢谢,
解决方案
复制时,您必须打开两个工作簿,然后将数据从一个地方移动到另一个地方。这可能会导致在内存中有 2 个相同数据的副本。复制操作完成后,这与同时打开它们相同。我相信直接引用会更快,因为它避免了额外的复制步骤。
您可以使用资源监视器来验证这一点: https ://www.thewindowsclub.com/use-resource-monitor-windows-10
然后执行您的两项任务并查看差异。
推荐阅读
- php - 如何使用 url 字符串中的数组来简化 php 代码
- python - How do set the amount of list elements equal to the number of characters in a string?
- javascript - 如何在 JavaScript 中显示与标签分开的帖子标签?
- javascript - 如何将 javascript 添加到个人 tumblr 博客文章?
- node.js - 如何使用带有节点 js 的谷歌驱动器 API 列出谷歌团队驱动器中的所有文件
- python - 当两个数据框之间的 if 语句匹配时,数据框将使用来自其他数据框的值附加新列
- ios - SWIFT 将参数从 VC 传递到 UIView 让我抓狂
- javascript - 使用导航栏滚动 div
- javascript - 来自另一个组件的 React Router Link 不起作用
- javascript - 用 axios 在 react native 中上传图片