Страницы: 1
RSS
Не срабатывает пересчет книги для пользовательской функции
 
Много лет мучил вопрос, почему пользовательская функция  (вставленная в ячейки на листе) вычисляется только после выполнения Application.CalculateFull  (или Полный пересчет, соответствующей комбинацией из 3-ех клавиш с F9), но при этом автоматически не вычисляется при изменениях на рабочем листе вне зависимости от Параметра вычисления (Автоматически или Вручную) , а также не срабатывает Вычисление на листе (Shift+F9) или Вычисление всей книги (F9).

Как пример, есть пользовательская функция суммирования, которая зависит от типа форматируемых ячеек (например, суммирует только жирные цифры).
Application.CalculateFull  заставляет данную функцию работать (Пересчет осуществляется).
Все прочие команды (как в VBA), так и вычисления с помощью комбинации клавиш не действует.

Вопрос задан с целью оптимизации расчетов (чтобы много времени не уходило на расчет всей книги, а хочется чтобы расчет был либо по данной ячейке, либо по листу).
Всякий раз Application.CalculateFull - это не очень практичный вариант.

По сути вопрос в том, чем отличается Application.Calculate от Application.CalculateFull ???
 
В код функции, в начало кода, вставьте строку
Код
Application.Volatile
Согласие есть продукт при полном непротивлении сторон
 
Да, спасибо за подсказку, вроде все работает. Даже не слышал про такой метод Volatile.
Страницы: 1
Наверх