我不知道为什么由于某些原因Excel内置函数=SUM()
无法真正总结自定义UDF创建的结果。它似乎总是以0.
例如,我有一个名为myUDF
的后续UDF,它将返回项目数。
对于单元格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;
}
答案 0 :(得分:2)
您的UDF是否返回号或字符串恰好包含数字字符?
如果我进入Excel并键入'10(10,格式化为字符串)和'15(15,格式化为字符串)和SUM()它们,我得到0。
如果我输入10和15(格式化为数字)和SUM()它们,我得到25。
重现问题的一些示例代码将允许我们回答肯定。