Добрый день, может есть мысли у кого, и кто то сталкивался с этим. Перерыл весь поиск, но ничего не помогло.
Ошибка такая: Для выполнения этого действия недостаточно памяти. Попробуйте использовать меньше данных или закрыть другие приложения.
Интересное вот что: на старом компьютере в excel 2007 такой ошибки не было, а в новом компьютере в excel 2021 возникает эта ошибка.
И вот ещё какую закономерность нашёл: мой код, через 1 час, закрывает эксель сохраняет и новую книгу открывает. А закономерность тут такая если оставить на бесперерывную работу код, (при сохранении файла каждый 1 час) то ошибка возникает на 4-ый день. А если уменьшить время и поставить чтобы сохранялся файл через каждую 1 минуту то ошибка возникнет через 3 часа работы кода. Как такое возможно что оперативная память за 3 часа работы быстрее израсходуется ведь там намного меньше данных в итоге. Получается что оперативная память забивается от того что эксель файл закрывается и открывается, а не от самих данных которые пишутся в этих книгах. То есть есть какой то лимит на 16 гигабайт оперативной памяти, что эксель может скажем 100 раз открыться и закрыться и всё это предел, и возникает ошибка. Мне приходится из за ошибка, просто заново включать excel и он может дальше работать (~100 раз откроется закроется) и возникнет снова ошибка (компьютер не нужно даже перезагружать).
Добрый день, может есть мысли у кого, и кто то сталкивался с этим. Перерыл весь поиск, но ничего не помогло.
Ошибка такая: Для выполнения этого действия недостаточно памяти. Попробуйте использовать меньше данных или закрыть другие приложения.
Интересное вот что: на старом компьютере в excel 2007 такой ошибки не было, а в новом компьютере в excel 2021 возникает эта ошибка.
И вот ещё какую закономерность нашёл: мой код, через 1 час, закрывает эксель сохраняет и новую книгу открывает. А закономерность тут такая если оставить на бесперерывную работу код, (при сохранении файла каждый 1 час) то ошибка возникает на 4-ый день. А если уменьшить время и поставить чтобы сохранялся файл через каждую 1 минуту то ошибка возникнет через 3 часа работы кода. Как такое возможно что оперативная память за 3 часа работы быстрее израсходуется ведь там намного меньше данных в итоге. Получается что оперативная память забивается от того что эксель файл закрывается и открывается, а не от самих данных которые пишутся в этих книгах. То есть есть какой то лимит на 16 гигабайт оперативной памяти, что эксель может скажем 100 раз открыться и закрыться и всё это предел, и возникает ошибка. Мне приходится из за ошибка, просто заново включать excel и он может дальше работать (~100 раз откроется закроется) и возникнет снова ошибка (компьютер не нужно даже перезагружать).stalber
stalber, Доброго времени суток. Не видя вашего кода макроса могу предположить что перед выходом из процедуры (End Sub) вы не выгружаете переменные из памяти.
Цитата от ZVI в данной теме: Объекты, объявленные As Object, как правило, требуют принудительного уничтожения в конце кода, чтобы освободить память: Set ваша переменная = Nothing. Объекты же природные для Excel уничтожаются корректно им самим после завершения кода.
Делайте выводы и проверяйте ваш код. Удачи.
stalber, Доброго времени суток. Не видя вашего кода макроса могу предположить что перед выходом из процедуры (End Sub) вы не выгружаете переменные из памяти.
Цитата от ZVI в данной теме: Объекты, объявленные As Object, как правило, требуют принудительного уничтожения в конце кода, чтобы освободить память: Set ваша переменная = Nothing. Объекты же природные для Excel уничтожаются корректно им самим после завершения кода.
Делайте выводы и проверяйте ваш код. Удачи.MikeVol
Ученик. Одесса - Украина
Сообщение отредактировал MikeVol - Суббота, 10.02.2024, 04:58
Выяснил вот что, практически ~120 раз код выполняется полностью, на 121 раз выскакивает ошибка. Microsoft Visual Basic Run-Time error '1004': Method 'Open' of object 'Workbooks'failed Нажав на Debug:
[vba]
Код
With ThisWorkbook .Worksheets("Настройки").Range("f3").ClearContents .Save ТУТ ЖЁЛТЫМ ОШИБКА ПОДСВЕЧЕНА Application.Workbooks.Open ("C:\Users\usern\Desktop\A\A.xlsb") Application.Run "A.xlsb!test1" .Close SaveChanges:=True End With End If End With End Sub
[/vba]
MikeVol спасибо.
Выяснил вот что, практически ~120 раз код выполняется полностью, на 121 раз выскакивает ошибка. Microsoft Visual Basic Run-Time error '1004': Method 'Open' of object 'Workbooks'failed Нажав на Debug:
[vba]
Код
With ThisWorkbook .Worksheets("Настройки").Range("f3").ClearContents .Save ТУТ ЖЁЛТЫМ ОШИБКА ПОДСВЕЧЕНА Application.Workbooks.Open ("C:\Users\usern\Desktop\A\A.xlsb") Application.Run "A.xlsb!test1" .Close SaveChanges:=True End With End If End With End Sub
Объекты, объявленные As Object, как правило, требуют принудительного уничтожения в конце кода
В коде нет слов As Object.
Почему код работал на excel 2007 windows 10, а на 2021 excel windows 11 выскакивает ошибка, тут ведь ошибка не в коде должна быть? А в каких то настройках экселя или виндовса. Или я ошибаюсь?
Цитата
Объекты, объявленные As Object, как правило, требуют принудительного уничтожения в конце кода
В коде нет слов As Object.
Почему код работал на excel 2007 windows 10, а на 2021 excel windows 11 выскакивает ошибка, тут ведь ошибка не в коде должна быть? А в каких то настройках экселя или виндовса. Или я ошибаюсь?stalber