在C#函数中设置Excel单元格的公式

我创build了一个Excel自动化插件,实现为一个C#类库,它包含一个UDF包装(我不使用VSTO)

我想在我的UDF中做的是:

1>获取公式input的单元格地址;

2>将该单元格的公式设置为我自己的公式;

我已经做了点1>如下:

Microsoft.Office.Interop.Excel.Application excelApp = (Microsoft.Office.Interop.Excel.Application)Marshal.GetActiveObject("Excel.Application"); Microsoft.Office.Interop.Excel.Range target = (Microsoft.Office.Interop.Excel.Range)excelApp.get_Caller(System.Type.Missing); string cellAddress = target.get_Address(Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1, Missing.Value, Missing.Value); //Perform some operations based on address //Assign a formula to my cell (This does not work !) target.Formula ="=SUM(2,2)" 

这应该根据这里的MSDN文档工作。

我究竟做错了什么 ? 有没有其他方法可以设置单元格的公式?

谢谢,

一个UDF只能向它的调用单元返回一个值 – 不允许覆盖它自己的公式(或者改变任何其他单元格的内容)。 你需要创build一个命令来做到这一点。

'= SUM(2,2)'与'2 + 2'相同;

如果要添加单元格,例如'A1'和'A4',则应使用此格式'= SUM(A1,A4)'

或者你想添加单元格从'A1'到'A4',你应该使用'= SUM(A1:A4)'。

或整列“B”,“= SUM(B:B)”。

(RangeValueDataType:Type.Missing,value:“= SUM(2,2)”);