2017-10-19 334 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

相關問題