Excel IF语句导致错误:异常来自HRESULT:0x800A03EC
问题描述:
我正在C#中创建一个Excel报告。当我添加一个公式如下图所示,一切工作正常:Excel IF语句导致错误:异常来自HRESULT:0x800A03EC
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)";
然后我得到这个错误:
Exception from HRESULT: 0x800A03EC
上面的if语句在Excel工作表中输入100%。它只在C#中失败,并且当它碰到这行代码时,异常被抛出。
答
虽然excel的本地化允许“;”使用代替逗号,COM接口不注册“;”并且应该使用逗号代替。
memberGuidesCellFormaulaRange.Formula = "=IF(LEFT(D7,12)=\"Welcome Pack\",O7*$AQ$4,0)";
有关本地化的问题,和写作的Excel,see this SO Q&A互操作的代码时,一些一般的指针的更多信息。
+0
我删除了分号并使用了逗号,而现在它工作 – Tumelo
你似乎在IF中使用了分号而不是逗号 – BugFinder
@BugFinder的区域设置迫使我们中的一些人这样做,当逗号是小数点分隔符时。 – rene
@BugFinder在我身边的Excel语句的语法是“= IF(logical_test; value_if_true; value_if_false)” – Tumelo