Я не знаю, почему по какой-то причине встроенная функция Excel =SUM()
не может на самом деле суммировать результаты, созданные пользовательским UDF. По-видимому, всегда заканчивается 0.
Например, у меня есть следующий UDF, называемый myUDF
, который будет возвращать количество элементов.
Для клетки A1
:
Формула: =myUDF('ItemA')
Результат: 10
Для клетки B1
:
Формула: =myUDF('ItemB')
Результат: 15
Так что, когда я сделаю =Sum(A1:B1)
и добавлю формулу в ячейку C1
, она вернет не 25, а 0.
Я пытался использовать некоторые средства форматирования данных (преобразования в числовые значения), но мне все равно не повезло. У кого-нибудь здесь была подобная проблема раньше? Есть идеи по поводу этого?
Спасибо.
EDIT:
Пример кода
public object MyUDF(string id, string pk, string param1 = "", string param2 = "", string param3 = "", string param4 = "")
{
object result = null;
string strFormula;
double n = 0;
DateTime dt;
try
{
strFormula = buildFormula(id, pk, param1, param2, param3, param4);
result = ws.getServiceResultsDataString(id, objUser, pk, param1, param2, param3, param4);
if (double.TryParse(result.ToString(), out n))
{
result = n;
}
else if (DateTime.TryParse(result.ToString(), out dt))
{
result = dt.Date;
}
ws.Dispose();
objUser = null;
}
catch (Exception ex)
{
}
finally
{
}
return result;
}