Я создал надстройку с помощью Excel-Dna и пометил экспортированные функции как Volatile (IsVolatile=true), что дает мне желаемое поведение. Функции используют простые запросы для извлечения данных из экземпляра SQL Server.
Однако в конкретном случае электронной таблицы с сотнями ячеек, связанных с внешними источниками, пересчет обычно приводит к зависанию экземпляра Excel.
Хотя я хотел бы сохранить функцию Volatile, было бы полезно, если бы я мог пропустить пересчет функции, если, например, входные параметры совпадают, а последний вызов был сделан через крошечный интервал времени. Не уверен, что это целесообразно, но я пытаюсь найти обходной путь, чтобы избежать IsVolatile=False.