Microsoft excel 计算函数 returns 代码错误 (-2146826273)

Microsoft excel Evaluate function returns a code error (-2146826273)

我在我的应用程序中使用 microsoft.office.interop.excel dll。 当我使用以下公式执行评估函数时: =IF(100000>15000,20%,IF(100000>12500,17.5%,IF(100000>10000,15%,IF(100000>7500,12.5%,IF(100000>5000,10%,0)))))*IF((AND(40>=20,23>=30)),15,2000)*LOG(IF(AND(3<>0,(1/3)>0.5),1000,2000))/IF(90<>0, IF((1/90)>0.5, 123456, 987654), 987654)-550-IF((OR(25>=20, 1000>=30)), 5000, 900) 。 我收到代码错误 -2146826273。我使用 excel sheet 测试了公式,它运行良好。请在下面找到执行的代码。

 public dynamic EvaluteFormula(string expressionFormula)
     {
         Application excelApp = new Application();
         return excelApp.Evaluate(expressionFormula);
     }

当我通过删除运算符来最小化公式长度时,它工作得很好。有没有人知道如何解决这个问题?

谢谢!

字符串参数长度必须小于等于255个字符。以下是 MSDN 对 Application.Evaluate 函数的说明,该函数将 Microsoft Excel 名称转换为对象或值:

A formula or the name of the object, using the naming convention of Microsoft Excel. The length of the name must be less than or equal to 255 characters.