У меня есть файл excel, размер которого равен только 1 МБ, но неограниченно увеличивает объем памяти (выше 6 ГБ), пока он не работает.Файл Excel использует накопительную память
Лист состоит из 100 независимых строк с примерно 300 столбцами каждый, где он извлекает данные из надстройки и выполняет вычисления. В excel есть VBA, который подключается к локальной БД доступа, чтобы вытащить 10 000 идентификаторов, которые затем проходят через них по группам по 100 за раз, извлекает данные из надстройки (используя UDF), а затем переходит к следующим 100.
Он делает следующие шаги: 1) Вытяните список из 10 000 уникальных 8-символьных идентификаторов из БД доступа, вставляет их в Sheet2 (не используется ни для чего другого) - эта часть не использует много памяти 2) В VBA - начиная с вершины, он прокручивается в блоках по 100 идентификаторов за один раз, копирует их в позиции A1: A100 в Sheet1 с 300 столбцами ссылки на UDF и вычислениями в ID в columb A для каждой строки 3) Вычисляет лист для вывода новых данных из UDF для каждого столбца
Это, кажется, только добавляет к использованию памяти каждый раз, когда он запускается, даже если предыдущий блок из 100 идентификаторов ушел (я сделал это так, потому что он, казалось, разбился, если я сделал 10 000 всех сразу). Книга предназначена для расчета РУЧНОЙ (следовательно, шаг 3); и все объекты устанавливаются в значение = Ничего, однажды сделанное для копирования информации БД.
Как остановить использование памяти из-за накопления? Кажется, это связано с тем, что UDF не освобождает память после того, как они были запущены. Есть ли способ очистить кеш в Excel или сбросить его с помощью VBA после каждого блока из 100 идентификаторов?
Трудно делать какие-либо предложения без фактического кода. –
будет ли это надстройкой, которая потребляет все больше и больше памяти? любые настройки для этого надстройки для ограничения использования? или метод очистки его памяти? – PatricK