![Excel 内存不足错误](https://linux22.com/image/1581869/Excel%20%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3%E9%94%99%E8%AF%AF.png)
我在 AWS EC2 实例 R5.4xlarge 上运行 Excel。我必须从包含账单数据的另一张工作表中,使用滑块将数据拉入 Power Pivot 中。初始数据拉取生成了大约 200,000 行数据。从初始数据拉取(大约需要 10 分钟)开始,我通过从滑块中选择我想要数据的客户端来创建报告。我可以通过从滑块中选择客户端来运行大约 14 份报告,但 Excel 会给出“内存不足,无法完成此操作”的提示,它会锁定并必须强制退出。我尝试了研究此问题后能找到的所有修复方法,但都没有奏效,包括为其配备 16 个 CPU 或内存优化的机器。我认为通过 vba 运行“保存”宏可能有助于清除 Excel 的内存,但我不确定如何创建它。我在 stackoverflow 上找到了这个建议,但他没有包含他的代码文本。 https://stackoverflow.com/questions/14396998/how-to-clear-memory-to-prevent-out-of-memory-error-in-excel-vba
“我找到了一个解决方法。起初它似乎会花费更多时间,但实际上由于交换更少,可用内存更多,它使一切工作得更顺畅、更快。这不是一种科学方法,在发挥作用之前需要进行一些测试。
在代码中,让 Excel 不时保存工作簿。我不得不循环遍历一个包含 360 000 行的工作表,结果它严重卡住了。每 10 000 行之后,我让代码保存工作簿,现在即使在 32 位 Excel 上,它也能完美运行。似乎 Excel 基本上会在您保存工作簿时清除内存。就像 SQL 在提交数据时清除事务日志一样。”
有人能建议我如何输入这种类型的代码以及在哪里输入吗?或者你认为这能解决我的问题吗?
谢谢。