在UDF上使用Excel内置函数

我不知道为什么由于某些原因Excel内置函数=SUM()不能真正总结自定义UDF创build的结果。 它总是以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; } 

您的UDF是否返回一个恰好包含数字字符数字string

如果我进入Excel并键入'10(10,格式化为string)和'15(15,格式化为string),并SUM()他们,我得到0。

如果我input10和15(格式为数字)和SUM()他们,我得到25。

一些重现问题的示例代码将使我们能够肯定地回答。