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