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