Следующая функция отлично работает, когда вы вводите отдельную ячейку и нажимаете Enter, результат соответствует ожидаемому.
Когда формула вставляется в несколько ячеек и лист пересчитывается, функция в основном (исключение составляет одна или две ячейки, которые могут быть заполнены ожидаемым значением) возвращает ошибку #value
[ExcelFunction(Name = "GetRate", IsThreadSafe = true)]
public static void GetRate(
[ExcelArgument("Range containing quantity and rate", AllowReference = false)] object[,] valueRange,
ExcelAsyncHandle asyncHandle)
{
var rate = 0.123456789m;
asyncHandle.SetResult(rate);
}
При отладке исключений не возникает