在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。
一些重现问题的示例代码将使我们能够肯定地回答。