C# - 使用包含双引号的公式设置excel单元格

时间:2014-08-13 16:07:10

标签: c# excel excel-formula double-quotes

我试图通过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)"

同样的错误,同样的问题。

当我尝试设置一个简单的公式时,没有引号,它工作正常。

有人有解决方案吗?

2 个答案:

答案 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),\"\")";
相关问题