【发布时间】:2017-10-24 14:15:16
【问题描述】:
我正在用 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# 中失败,并且在遇到这行代码时会立即引发异常。
【问题讨论】:
-
您似乎在 IF 中使用分号而不是逗号
-
@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 应用的计算设置为手动
标签: c# excel excel-interop hresult