Сохранение памяти в VBA, после отключения ScreenUpdating, периодическое сохранение и повторение и перезапись существующих данных несколько раз - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь сохранить память в Excel, так как я пытаюсь запустить большую симуляцию Монте-Карло с 30 000 записей и 10 000 симуляций.

Следующие уже реализованные шаги для экономии памяти:

1. Application.ScreenUpdating = False 

2. If (sims * inputlength) > 24000000 Then
      originalsims = sims
      sims = Int((24000000 / inputlength))
      repeats = Application.WorksheetFunction.RoundUp((originalsims / sims), 0)
End If

Я понял, что если количество входных данных * моделирования превышает количество 24 млн., Это вызывает проблему с памятью, поэтому я разбиваю общее количество симуляций и повторяю весь процесс x раз, чтобы достичь первоначально желаемого количества симуляций.

3. ActiveWorkbook.Save

Я где-то читал, что если я время от времени сохраняю файл (я делаю это каждые 1000 симуляций), это также сохранит некоторую память.

Вопросы:

  1. Не релевантно -> удалено.

  2. Как еще больше улучшить проблемы с памятью и не допустить запуска макроса прибл. 30 минут каждый раз?

...