Использование встроенных функций Excel поверх UDF
Я не знаю, почему по какой-то причине встроенная функция Excel =SUM()
не могу на самом деле суммировать результаты, созданные пользовательским UDF. Похоже, всегда заканчивается 0.
Например, у меня есть следующий UDF, называемый myUDF
, который будет возвращать количество предметов.
Для клетки A1
:
Формула: =myUDF('ItemA')
Результат: 10
Для клетки B1
:
Формула: =myUDF('ItemB')
Результат: 15
Итак, когда я делаю =Sum(A1:B1)
и поместите формулу в клетку C1
, он не вернет 25, а 0 вместо.
Я пытался использовать некоторые вещи форматирования данных (преобразование в числовые), но до сих пор не повезло там. У кого-нибудь здесь была подобная проблема раньше? Есть идеи по поводу этого?
Благодарю.
РЕДАКТИРОВАТЬ: Пример кода
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;
}
1 ответ
Ваш UDF возвращает число или строку, которая содержит числовые символы?
Если я захожу в Excel и набираю '10 (10, отформатированный в виде строки) и '15 (15, отформатированный в виде строки) и SUM() их, я получаю 0.
Если я наберу 10 и 15 (отформатированные как числа) и SUM() их, я получу 25.
Некоторый пример кода, который воспроизводит проблему, позволит нам ответить наверняка.