У меня есть книга Excel, которая использует Application.Volatile в трех пользовательских функциях.Ниже приведен пример одной из функций, две другие очень похожи.Все, что они делают, - это находят значение в указанной рабочей таблице и возвращают ее в сводную рабочую таблицу.
Function estimated_commission(client As Range) As Double
Application.Volatile
Name = CStr(client.Value)
pull_value = Worksheets(Name).Range("A500").End(xlUp).Offset(0, 5).Value
estimated_commission = pull_value
End Function
Функция работает так, как я планировал, когда у конечного пользователя есть только рабочая книга, использующая открытые функции.Для параметров расчета для книги задано значение Автоматически.
Проблема возникает, когда пользователь изменяет значение ячейки или сохраняет другую книгу.Эти рабочие книги не имеют отношения к рабочей книге с пользовательскими функциями.Когда пользователь повторно активирует рабочую книгу с функциями, все пользовательские функции возвращают ошибку # ЗНАЧЕНИЕ.Нажатие клавиши F9 или пересчет листа удалит все ошибки и вернет правильные значения.
Есть ли способ предотвратить возникновение этой проблемы?