用C#写Excel函数

我有一个从C#编写function到Excel文件的问题。

private void AddDemandFunctions() { Func<string, string, string> function = (range, shift) => { var builder = new StringBuilder(); builder.Append("=LICZ.JEŻELI("); builder.Append(range); builder.Append("; \""); builder.Append(shift); builder.Append("\")"); return builder.ToString(); }; int startRow = 5; int endRow = 20; string [] columns = { "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM" }; foreach (var column in columns) { string range = column + startRow + ":" + column + endRow; worksheet.Range[column + 21].Formula = function(range, "D"); // HERE I GET AN EXCEPTION RIGHT IN MY FACE :( worksheet.Range[column + 22].Formula = function(range, "E"); worksheet.Range[column + 23].Formula = function(range, "L"); worksheet.Range[column + 24].Formula = function(range, "N"); } } 

例外是:

 An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll Additional information: Wyjątek od HRESULT: 0x800A03EC. 

我的Excel(2010)是波兰语版本。 当我试图删除“=”它的作品,但它只写文本。 然后,如果我在excel文件里面添加“=”,一切都可以。 函数string中没有错误。

我也试过用非抛光function: COUNTIF和我有同样的例外…

有任何想法吗?

来自PL的问候:)

当您手动input公式时,您必须检查单元格内的内容。 Excel在编辑栏中显示“= COUNTIF(E5:E20;”D“)”,但是如果你阅读真实的内容,你会看到“= COUNTIF(E5:E20,”D“)”< – 请注意逗号而不是分号在公式中。

怎么做? 将公式写入单元格,打开VBA编辑器(Alt + F11或Ctrl + G)并input即时窗口即? Worksheet.range(“G1”)。公式 – 取决于你input公式的地方。

如果你将格式化公式根据什么显示Excel不会扔任何东西在你的脸上;-)

我想也有逗号 – >分号问题。

编辑:对不起,工作表是我的本地variables。 你必须使用语法:

? ActiveWorkbook.ActiveSheet.range( “G1”)。公式