C# 电子表格档位#结果时的值。数字包含正确的返回值
我正在做一个将VBA代码移植到C#的项目,用于电子表格设备。我的团队已经成功移植了大约150个自定义Excel加载项函数。对于其中一个函数,我们的回归电子表格为148个函数调用中的4个返回#值,其余的返回预期结果。当我逐步完成代码时,一切都按预期运行,正确的结果写入result.Number,但在电子表格中解析为#value。我完全困惑了!请帮帮我-我甚至不知道从哪里开始 函数的结尾如下所示:C# 电子表格档位#结果时的值。数字包含正确的返回值,c#,spreadsheetgear,C#,Spreadsheetgear,我正在做一个将VBA代码移植到C#的项目,用于电子表格设备。我的团队已经成功移植了大约150个自定义Excel加载项函数。对于其中一个函数,我们的回归电子表格为148个函数调用中的4个返回#值,其余的返回预期结果。当我逐步完成代码时,一切都按预期运行,正确的结果写入result.Number,但在电子表格中解析为#value。我完全困惑了!请帮帮我-我甚至不知道从哪里开始 函数的结尾如下所示: if (retval < 0) { result.Text = UtilFuncs.E
if (retval < 0)
{
result.Text = UtilFuncs.ErrorNum(retval);
}
else
{
result.Number = retval;
}
if(retval<0)
{
result.Text=UtilFuncs.ErrorNum(retval);
}
其他的
{
结果:数字=返回值;
}
retval
包含调用单独DLL返回的正确结果。当我将鼠标悬停在result.Number
上时,它也包含正确的结果。但我得到了一个#值
如果需要,我可以提供更多的代码。我的大问题是,为什么它对除4个以外的所有人都有效。
如果没有更具体的例子,就不可能给出一个明确的答案。不过,我还是要在黑暗中试一试 如果你使用像IArguments(…)这样的方法, (…)等,要访问自定义函数的参数,可以通读这些参数的文档。例如,请参见以下有关(…)的备注:
- 如果可能,非逻辑参数将转换为逻辑值。 否则,此方法将返回false,并且将显示一个内部标志 指示已发生错误的集合,导致 公式将成为错误
如果是这种情况,您可以使用IArguments。(…)方法清除错误。谢谢!我使用了IArguments.ClearError()方法,现在得到了预期的结果。似乎所有参数都是使用正确的GetNumber或GetText检索的。