如何不用重启就可以清除VBA中的内存,运行宏时总出现内存溢出的情况 20

宏所作用的数据很多多大90W行,然后代码没问题我还用语句earsearr进行清空数组了,单个工作簿运行没问题不过打开其他工作簿想继续运行的时候就出现内存溢出的错误;需要重... 宏所作用的数据很多 多大90W行,然后代码没问题 我还用 语句 earse arr 进行清空数组了,单个工作簿运行没问题 不过打开其他工作簿 想继续运行的时候 就出现内存溢出的错误;需要重启excel才能运行宏。有没有不用重启可以清除VBA内存的方法? 展开
 我来答
阳光上的桥
2017-05-18 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65808
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

内存的问题应该从SUB来解决,如果只是申请了数组,SUB结束后就自动释放了,无需担心。

我写了一个简单例子,SUB A调用SUB B,SUB B使用数组分配大量内存,返回SUB A的时候内存就自动释放了,我调试的过程如下。

SUB A开始执行,尚未调用SUB B:

下图是进入SUB B之后,分配数组之前的内存情况(几乎无变化):

下图是分配数组后的情况(内存大幅度增加):

下图是SUB B执行结束,返回SUB A后内存情况(全部释放):


总结,如果只是使用数组,基本上不担心内存泄漏,划分好SUB就行。

追问
你的意思就是 说 不是 使用数组的原因?
那是什么原因?
因为要在多个工作簿使用同样的代码 第一次使用完保存就没事,但是 重新打开另一个工作簿 再次使用就弹出内存溢出的错误,需要重启才能再次运行。
所以我想有没有方法在任务启动器关掉某个程序还是 在excel进行什么操作可以解决的
匿名用户
2017-05-18
展开全部
放不下,一个单元格最多放 32767 个字符
追问
??
那有什么办法解决?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BD哎呀呀
2023-05-05
知道答主
回答量:25
采纳率:0%
帮助的人:1.1万
展开全部
结束的时候把全局变量设回初始值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
adc大神fly
2017-05-18 · TA获得超过305个赞
知道答主
回答量:740
采纳率:0%
帮助的人:99万
展开全部
用局部变量
追答
inti 不用的设为null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式