EXCEL VBA反复打开和关闭大量文件出现内存溢出

当前目录下有数千个相同格式的EXCEL文件,需要依次打开每个文件读取其中的部分数据,合并到一个新的EXCEL文件中。xlsFile=ThisWorkbook.Path&"... 当前目录下有数千个相同格式的EXCEL文件,需要依次打开每个文件读取其中的部分数据,合并到一个新的EXCEL文件中。
xlsFile = ThisWorkbook.Path & "\" & Dir(ThisWorkbook.Path & "\*.XLS")
Do While xlsFile <> ""
Set wk = Workbooks.Open(xlsFile)
'读取数据操作代码(略)
wk.Close
Set wk = Nothing
xlsFile = ThisWorkbook.Path & "\" & Dir()
Loop
有时处理到几十个文件时就出现内存溢出,最多可以处理到2千多个文件,用WINDOWS任务管理器监测发现关闭文件后并没有释放内存。
后改用下面这段测试代码反复打开和关闭同一个文件(不做任何操作),也会出现同样的内存溢出问题。
For I = 1 To 4000
Set wk = Workbooks.Open("c:\工作簿1.xls")
wk.Close
Set wk = Nothing
next
展开
 我来答
Ynzsvt
2018-06-16 · TA获得超过6662个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2664万
展开全部
不是 反复打开和关闭大量文件出现内存溢出,而是遇到的空白文件名(即表示这个文件夹的dir已经找完了文件)而出错。
改正方法:dir()转到下一行赋值给变量。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式