我正在尝试在VBA for Excel中声明一个新变量。 我有一个具有9个模块和7个类模块的Excel模型。 每个模块确实很大,每个模块中平均要声明60个变量,每个模块最少要几百行代码,而最多要几千行代码。 每次尝试输入新变量时,都会出现错误消息“ Out Of Memory”。 如何避免此错误并继续声明更多变量?

#1楼 票数:1

如评论中所述,我们的数据太少,无法为您提供确切的答案。

但是,原因可能很多:

  • 您声明了很多对象(“ Set obj =”),并且从不清理它们(Set obj = Nothing)。 如果不减少对对象的引用,它将保留在内存中。
  • 您有一个循环,在该循环中您声明了许多对象/变量,直到获得内存溢出为止。
  • 您一次创建了太多分配过多内存的对象(例如IE对象等)

该如何处理?

#2楼 票数:0

每次尝试输入新变量时,都会出现错误消息“ Out Of Memory”。

这听起来像一个设计时错误- 编辑代码时,而不是您在运行代码时收到运行时错误你得到一个错误。

如果确实是设计时错误,则您的文件可能已损坏。 通过将所有工作表复制到新工作簿中并将代码复制到新的空白模块中来尝试重建它。

#3楼 票数:0

请注意,VBA表单,标准和类模块,过程,类型和变量有大小限制。

我只在这里看到它的记录:

https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/aa716182(v=vs.60)

您要么需要缩小程序范围,要么将其分成逻辑步骤。 或者使用更强大的编程语言,例如VB.NET。

  ask by Gaurav Taneja translate from so

未解决问题?本站智能推荐:

1回复

从Excel 2010升级到Excel 2013后,VBA中的大型阵列出现“内存不足”错误

我最近从Excel 2010升级到Excel2013。下面的VBA代码在Excel 2010中工作正常,但在Excel 2013中给出了错误。 当我减小数组大小时,错误消失了。 要使错误消失,数组大小必须像这样: 我正在使用Excel 2013 32位。 如果我能就如何保
2回复

Excel仅消耗70MB时出现VBA“内存不足”错误

问:为什么我的系统有足够的内存(办公室为64位)时内存不足? 问:可能是拆分时的数据导致了这种奇怪的行为吗? 问:如果拆分该字符串会造成麻烦,那么如何仅出于存储/恢​​复该字符串的操作而对其进行清理/恢复? 规格: Win 8.1 Pro + Office 2013 64bit
2回复

VBA错误:操作内存不足

这个脚本给我一个错误,因为它消耗了太多的资源。 我该怎么做才能解决这个问题? 样本数据: 需要变成这样:
3回复

VBA代码中的内存不足错误

下午好, 在我的代码中收到内存不足错误,是否有任何改变代码的建议? 来自A列的输入被转移到2个不同的单元格。 输出1:连接插入了逗号的A列中的所有数据 - 在每个单元格值之间输出2:连接来自A列的所有数据,插入逗号和引号 - 对于每个单元格值 谢谢
2回复

使用VBA导入文本文件时出现Excel内存不足警告

当通过VBA将多个txt文件导入Excel时,我遇到了与.Refresh BackgroundQuery:=False相关的内存不足警告。 正好在723正确导入的文本文件中弹出错误。 这是我使用的VBA代码: 我怎么解决这个问题?
1回复

excel vba出现错误“内存不足” [关闭]

我正在使用Excel VBA。 在我的代码中,我正在下载多个文件,说一个50个。 我正在做什么,我要下载第一个文件进行更改,然后进行一些计算并将其保存为xlsx,然后下载另一个文件并进行计算将其另存为xlsx,依此类推。 因此,下载26-27个文件后,出现“内存不足”错误。 谁能建议
1回复

VBA运行时错误7内存不足

这可能在这里某处,我想念它,只是让我知道。 运行宏后,我得到运行时错误7内存不足。 调试之后,就在这行: 该代码旨在按照经度和纬度列出机场,创建将被解释为圆形的线段,然后转换为.KML(由Google Earth Pro读取)。 这是其余的代码-我该如何清理类似的东西以避免
1回复

运行时错误“ 7”。 尝试运行VBA代码时内存不足

基本上,代码会执行此操作,它将在行中查找重复的值并将相应的值转置为列。 该代码非常适合少量行。 问题是我有很多电子表格,其中包含60万多行数据。 现在,当我选择所有数据并运行代码时,它给我“运行时错误'7':内存不足”错误。 调试器突出显示的行是: 这是完整的VBA代码: