Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Excel IF语句导致错误:HRESULT异常:0x800A03EC_C#_Excel_Excel Interop_Hresult - Fatal编程技术网

C# Excel IF语句导致错误:HRESULT异常:0x800A03EC

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

我正在用C#创建excel报告。当我添加如下公式时,一切正常:

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,删除分号并使用逗号,现在就可以了