excel VBA中的“内存不足”错误是一个非常大的模型。 我怎样才能避免这一点?
我想在Excel的VBA中声明一个新的variables。 我有一个excel模型,有9个模块和7个模块。 每个模块都非常大,每个模块中平均声明了60个variables,每个模块中最less有几百行代码,最多可以有几千行代码。 每次我尝试input一个新的variables,我得到一个错误,说:“内存不足”。 我怎样才能避免这个错误,并继续声明更多的variables?
正如评论中所提到的,我们的数据太less,无法为您提供明确的答案。
然而原因可能是很多的:
- 你声明了很多对象(“Set obj =”)并且从不清除它们(Set obj = Nothing)。 如果不减less对象的引用,它将保留在内存中。
- 你有一个循环,你在声明了很多的对象/variables,直到你得到一个内存溢出。
- 你一次创build太多的对象,分配太多的内存(如IE对象等)
如何处理这个?
-
从引发错误的代码开始,最有可能发生在循环或其他增加内存使用的地方(使用debuggingF8遍历代码)。 根据问题的来源,可能有很多解决scheme。
-
利用代码中不同里程碑的内存统计信息https://social.msdn.microsoft.com/Forums/office/en-US/e3aefd82-ec6a-49c7-9fbf-5d57d8ef65ca/check-size-of-excelexe-in-memory或者干脆使用任务pipe理器
-
看看这些技巧是否有帮助: https : //www.add-ins.com/support/out-of-memory-or-not-enough-resource-problem-with-microsoft-excel.htm
每次我尝试input一个新的variables,我得到一个错误,说:“内存不足”。
这听起来像是devise时错误 – 编辑代码时出现的错误,而不是运行代码时得到的运行时错误。
如果确实这是一个devise时错误您的文件可能会损坏。 尝试通过将所有工作表复制到新的工作簿并将代码复制到新的空白模块来重build它。