C# npoi SetCellFormula VBA中的自定义公式

C# npoi SetCellFormula VBA中的自定义公式,c#,vba,excel,npoi,C#,Vba,Excel,Npoi,我有一个用excel模板填充数据的应用程序。模板是.xlsm。在模板中,我创建了名为SumByColor的vba函数。当我尝试将单元格公式设置为此函数时,我遇到以下错误: {"Name 'SumByColor' is completely unknown in the current workbook"} 我设置的公式如下: sheet.GetRow(rowIndex).GetCell(startPos + 2).SetCellFormula(string.Format("SumByColor

我有一个用excel模板填充数据的应用程序。模板是.xlsm。在模板中,我创建了名为SumByColor的vba函数。当我尝试将单元格公式设置为此函数时,我遇到以下错误:

{"Name 'SumByColor' is completely unknown in the current workbook"}
我设置的公式如下:

sheet.GetRow(rowIndex).GetCell(startPos + 2).SetCellFormula(string.Format("SumByColor($AQ$7,F{0}:AI{0})",rowIndex+1));

您是如何分配公式的? 你是在尝试这样的事情吗

Range("A10") = "=SumByColor($AQ$7,F8:AI8)"

在设置单元格的公式之前,是否尝试将单元格类型设置为公式。例如:

XSSFRow row = (XSSFRow)sheet.GetRow(i);
ICell cell = row.CreateCell(1);  
cell.SetCellType(CellType.Formula);
cell.SetCellFormula("SUM(B1:B10)");

你可以阅读更多关于设置公式和约束的内容。

你是否应该设置为“=SumByColor(…)”?如果我这样写“=SumByColor(…)”则不会:{NPOI.SS.formula.FormulaParseException:指定的公式“=SumByColor($AQ$7,F8:AI8)'以一个不允许使用的等号开始。这很奇怪。当你不使用等号时,它似乎认为
SumByColor
是一个范围名称,而当你使用等号时,它不允许你使用。当你说你
有一个应用程序时,你在谈论什么类型的应用程序?你是如何与Excel进行通信的你的申请?