2017-10-19 328 views
2

我正在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#中失败,并且当它碰到这行代码时,异常被抛出。

+1

你似乎在IF中使用了分号而不是逗号 – BugFinder

+0

@BugFinder的区域设置迫使我们中的一些人这样做,当逗号是小数点分隔符时。 – rene

+0

@BugFinder在我身边的Excel语句的语法是“= IF(logical_test; value_if_true; value_if_false)” – Tumelo

回答

4

虽然excel的本地化允许“;”使用代替逗号,COM接口不注册“;”并且应该使用逗号代替。

memberGuidesCellFormaulaRange.Formula = "=IF(LEFT(D7,12)=\"Welcome Pack\",O7*$AQ$4,0)"; 

有关本地化的问题,和写作的Excel,see this SO Q&A互操作的代码时,一些一般的指针的更多信息。

+0

我删除了分号并使用了逗号,而现在它工作 – Tumelo

相关问题