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

当前目录下有数千个相同格式的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

不是 反复打开和关闭大量文件出现内存溢出,而是遇到的空白文件名(即表示这个文件夹的dir已经找完了文件)而出错。
改正方法:dir()转到下一行赋值给变量。
温馨提示:答案为网友推荐,仅供参考
相似回答