Страницы: 1
RSS
Очистить память: удалить ВСЕ массивы и ВСЕ словари
 
Доброе утро!

Не подскажите, как удалить все массивы и все словари (не зная их названий).
Искал - не нашел.
У меня много запутанных процедур, где мог ставил Erase  и RemoveALL. Однако это не помогает, видимо, что-то проходит мимо этих команд. Часто вылазит OUT of Memory.

Подскажите новичку. Есть ли команда, которая всю память освобождает от всего, что там есть? Чтоб я ее воткнул в конце и все было ок.

Спасибо!
 
zavhoz1984, здравия. Имхо, нет такой команды. :) Делайте свой код понятным, почаще используйте комментарии.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Голосом Бони Нем: Тц... Жаааааааль!
 
RemoveALL очищает словарь, но не удаляет.
Удалить
Код
Set oDic = Nothing
 
А что, VBA часто оставляет за собой "мусор" при выходе из процедур или функций?
 
кнопка цитирования не для ответа [МОДЕРАТОР]

Ну пишет же он OUT OF MEMORY при КАЖДОМ щелчке по клетке. У меня только один вариант причины - мусор от массивов и словарей (их уйма). У вас есть другие варианты?
 
Цитата
МВТ написал:
А что, VBA часто оставляет за собой "мусор" при выходе из процедур или функций?
не знаю, насколько часто, но иногда неприятные эффекты при ошибочном завершении (да и при нормальном тоже) есть у словарей - когда он не обнуляется при выходе из процедуры, несмотря на то, что при следующем заходе он инициализируется через Set dic = CreateObject
Не знаю, с чем связано, но сейчас стараюсь в каждой процедуре его в Nothing сразу после завершения пользования...
F1 творит чудеса
 
Максим, спасибо!

Везде Setов наставил. Вроде больше не пишет аут оф мемори.
Страницы: 1
Читают тему
Наверх