Если вы включите ВСЕ ссылки на данные электронной таблицы в список параметров 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