我正在尝试通过c#代码设置excel单元格的公式 . 我使用Microsoft.Office.Interop.Excel,版本14.我总是得到一个excel错误0x800A03EC,这是一种通用错误 .
String formula = "=IF(A2=\"BLANCO\";\"\";C1+1)"
Range cell = (Microsoft.Office.Interop.Excel.Range)ws.Cells[2, 3];
cell.Formula = formula;
我也尝试用@来逃避双引号
String formula = @"=IF(A2=""BLANCO"";"""";C1+1)"
同样的错误,同样的问题 .
当我尝试设置一个简单的公式时,没有涉及引号,它工作正常 .
有人有解决方案吗?
1 回答
没有太多的代码上下文,但斜杠应该适当使用时工作 . 我不确定这里使用分号 .
这段代码是我的一个Interop程序直接拉出的一个例子,工作正常:
thisExcel.xlWorksheet.Range["AD44", Type.Missing].Value = "=IF(BULK!L7=\"#N/A Field Not Applicable\",\"( \"&'Title Look Up'!C3&\" )\",\"( \"&'Title Look Up'!C3&\" )\")";
如果你想要的只是:'if a2 reads blanco then nothing else increment value of c1 by 1',那么你只需要:
=IF(A2=\"BLANCO\",\"\",C1+1)
我也会尝试使用.Value而不是.Formula .
希望有所帮助