我试图通过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)"
同样的错误,同样的问题。
当我尝试设置一个简单的公式时,没有引号,它工作正常。
有人有解决方案吗?
答案 0 :(得分:0)
您的代码没有太多上下文,但如果使用得当,斜杠应该可以正常工作。我不确定在这里使用分号。
此代码是从我的一个Interop程序直接拉出的示例,并且工作正常:
thisExcel.xlWorksheet.Range["AD44", Type.Missing].Value = "=IF(BULK!L7=\"#N/A Field Not Applicable\",\"( \"&'Title Look Up'!C3&\" )\",\"( \"&'Title Look Up'!C3&\" )\")";
如果你想要的只是:'如果a2读取blanco然后没有其他任何东西将c1的值增加1',那么你只需要:
=IF(A2=\"BLANCO\",\"\",C1+1)
我也会尝试使用.Value而不是.Formula。
希望有帮助
答案 1 :(得分:0)
以@getglad的答案为基础-使用斜杠确实适用于双引号。
我最近的解决方案(截至2020年):
worksheet.Cells[row,col].Value = "=IFERROR(VLOOKUP(etc),\"\")";