我正在尝试在VBA for Excel中声明一个新变量。我有一个excel模型,它有9个模块和7个类模块。每个模块都非常大,每个模块中平均声明了60个变量,每个模块中最少有几百行代码,最多只有几千行代码。每次我尝试输入一个新变量时,都会收到一条错误信息“Out Of Memory”。如何避免此错误并继续声明更多变量?
答案 0 :(得分:1)
正如评论中所提到的,我们的数据太少,无法为您提供明确的答案。
但原因可能很多:
如何处理?
从引发错误的代码开始,因为这很可能发生在循环或其他增加内存使用量的地方(使用调试F8来遍历代码)。根据您的问题来源,可能有许多解决方案。
在代码https://social.msdn.microsoft.com/Forums/office/en-US/e3aefd82-ec6a-49c7-9fbf-5d57d8ef65ca/check-size-of-excelexe-in-memory中的不同里程碑中利用内存统计信息,或者只使用任务管理器
查看以下任何提示是否有帮助:https://www.add-ins.com/support/out-of-memory-or-not-enough-resource-problem-with-microsoft-excel.htm
答案 1 :(得分:0)
每当我尝试输入一个新变量时,我都会收到一条错误,上面写着" Out Of Memory"。
这听起来像设计时错误 - 编辑代码时出现的错误,而不是运行代码时遇到的运行时错误。
如果确实这是设计时错误,则您的文件可能已损坏。尝试通过将所有工作表复制到新工作簿并将代码复制到新的空白模块来重建它。
答案 2 :(得分:0)
请注意,VBA表单,标准和类模块,过程,类型和变量都有大小限制。
我在这里只看到了它:
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/aa716182(v=vs.60)
您需要缩小程序的范围,将其拆分为逻辑步骤。或者使用像VB.NET这样更强大的编程语言。