C# Excel IF语句导致错误:HRESULT异常:0x800A03EC
我正在用C#创建excel报告。当我添加如下公式时,一切正常:C# Excel IF语句导致错误:HRESULT异常:0x800A03EC,c#,excel,excel-interop,hresult,C#,Excel,Excel Interop,Hresult,我正在用C#创建excel报告。当我添加如下公式时,一切正常: totalCellFormulaRange.Formula = "=SUM(AH7:AS7)"; //totalCellFormulaRange is a Range object from Microsoft.Office.Interop.Excel 但现在,当我尝试添加一个由if语句组成的公式时,如下所示 memberGuidesCellFormaulaRange.Formula = "=IF(LEFT(D7;12)=\"We
totalCellFormulaRange.Formula = "=SUM(AH7:AS7)"; //totalCellFormulaRange is a Range object from Microsoft.Office.Interop.Excel
但现在,当我尝试添加一个由if语句组成的公式时,如下所示
memberGuidesCellFormaulaRange.Formula = "=IF(LEFT(D7;12)=\"Welcome Pack\";O7*$AQ$4;0)";
然后我得到这个错误:
来自HRESULT的异常:0x800A03EC
如果在Excel表格中键入,上述if语句将100%有效。它只会在C#中失败,当它碰到这行代码时,就会抛出异常 尽管excel本地化允许使用“;”代替逗号,但COM接口不注册“;”,而应使用逗号
memberGuidesCellFormaulaRange.Formula = "=IF(LEFT(D7,12)=\"Welcome Pack\",O7*$AQ$4,0)";
有关本地化问题的更多信息,以及在编写Excel互操作代码时的一些常规指针,.如果没有,您似乎正在使用分号commas@BugFinder当逗号是十进制分隔符时,区域设置强制我们中的一些人这样做。@BugFinder我这边it语句的Excel语法是“=IF”(logical_test;value_if_true;value_if_false)“使用@=if(LEFT(D7;12)=“Welcome Pack”“;O7*$AQ$4;0)”是否更好?如果失败,您是否一次执行了大量excel设置?请尝试将excel应用程序计算设置为manalI,删除分号并使用逗号,现在就可以了