Цитата: KaPrAL Excel сам по себе тяжеловесный, содержит множество объектов, которые грузят память, поэтому в коде макросов используют как можно меньше переменных и массивов, и их значения лучше удалять из памяти сразу после использования. Можно также создавать невидимый лист, и сохранять в нем промежуточные данные, на каждом цикле очищая кэш и сохраняя книгу.
Саша, привет.
Если считать не в массивах, то время выполнения увеличивается в десятки раз.
Удалить массивы из памяти удается только к концу программы, т.к. они все задействованы в расчетах.
Все переменные обозначены своими типами (по возможности не "вариант").
На каждом цикле очищать кэш - хорошая идея, вот только Excel матерится сразу после начала анализа, т.е. еще на первом цикле.
Да и не так уж много там массивов, я не ожидал, что Excel "раскорячится" :)
Единственное решение, которое я вижу - оптимизация размера массивов, т.к. во многих случаях приходится брать массив заведомо большего размера, чтобы туда влезли все данные, количество которых не известно до выполнения операций.
Использовать массив переменного размера дольше по времени.
Вот такая задача, если бы анализ по времени продолжался не долго, можно было бы пожертвовать временем в пользу памяти, а тут и так счет на сутки, поэтому главный ресурс - время. А компы пора апгрейдить :D
Спасибо!