0
Обновить результаты функции Excel VBA
Как я могу заставить определяемую пользователем функцию переоценивать себя на основе измененных данных в электронной таблице?
Пробовал F9и Shift+F9 .
Единственное, что кажется работающим, - это редактирование ячейки с помощью вызова функции и последующее нажатие Enter.
Ответов (9)9
Решение
0
Дополнительная информация о сочетаниях клавиш F9 для вычислений в Excel
- F9 Пересчитывает все листы во всех открытых книгах
- Shift+ F9 Пересчитывает активный рабочий лист
- Ctrl+ Alt+ F9 Пересчитывает все листы во всех открытых книгах (Полный пересчет)
- Shift+ Ctrl+ Alt+ F9Перестраивает дерево зависимостей и выполняет полный пересчет
0
Если вы включите ВСЕ ссылки на данные электронной таблицы в список параметров UDF, Excel будет пересчитывать вашу функцию при изменении данных, на которые ссылаются:
Public Function doubleMe(d As Variant)
doubleMe = d * 2
End Function
Вы также можете использовать Application.Volatile
, но это имеет недостаток, заключающийся в том, что ваш UDF всегда пересчитывается - даже если в этом нет необходимости, потому что данные, на которые ссылаются, не изменились.
Public Function doubleMe()
Application.Volatile
doubleMe = Worksheets("Fred").Range("A1") * 2
End Function