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 展开
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 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询