【发布时间】:2019-08-25 17:55:22
【问题描述】:
我已经用 C# 构建了Excel-Dna Addin。我有几个在某些情况下需要运行的 UDF 函数。
我的单元格包含具有不同参数的 UDF,我在这里展示的是简化版本。
我正在为此使用Application.Evaluate 函数。
我的 UDF:
[ExcelFunction(Name = "Test.TestMe", Description = "Some test", IsHidden = false)]
public static int TestMe(int i)
{
return i + 1;
}
如果我打电话给Application.Evaluate("=Test.TestMe(1)"),我会得到结果 2。
如果我尝试以下操作:Application.Evaluate("=Test.TestMe(1)+Test.TestMe(2)") 我的 UDF 函数都没有被调用。
Evaluate 函数返回:-2146826259 = #Name?
我尝试了以下方法:
- 删除了函数名
"Test.TestMe(1)+Test.TestMe(2)"之前的= - 使用完全限定名称调用。
"myexcel.xlsx!Test.TestMe(1)+Test.TestMe(2)" - 我知道
Application.Evaluate限制为 255 个字符。
我想避免解析公式并一一调用我的 UDF。
有什么想法吗?
【问题讨论】: