Я извлекаю данные ячейки из всех рабочих книг в папке.Во время извлечения использование памяти увеличивается с постоянной скоростью около 100 ~ 500 КБ каждый цикл (рабочая книга открыта / закрыта).При извлечении из большого количества файлов объем используемой памяти достигает 1,5 ГБ и появляется сообщение об ошибке во время выполнения.Когда это происходит, использование памяти падает, и скрипт продолжает работать.Пытался прокомментировать каждый шаг от скрипта, чтобы узнать, что захватывает память, (комментарий читается из ячейки и печатается в csv), вырезал скрипт до тех пор, пока не открылась и не закрылась часть скрипта.
Есть ли способ освободитьиспользование памяти?Я новичок в vba, и извините, но английский не мой родной язык, не стесняйтесь меня поправлять.
Подчеркнутый скрипт только с открытой и закрытой частью, без объявления переменных.
Sub Open_Close_xls_memory_test()
Application.ScreenUpdating = False
Application.EnableEvents = False
Path = "C:\Users\"
Filename = Dir(Path & "*.xls")
t = Now
i = 0
Do While Filename <> ""
If Filename <> ThisWorkbook.Name Then
i = i + 1
Application.StatusBar = i
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
Workbooks(Filename).Close
End If
Filename = Dir()
Loop
MsgBox i & " files in " & vbNewLine & Format(Now() - t, "hh:mm:ss")
Shell "explorer.exe """ & Target & "", vbNormalFocus
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub