在C#函数中设置Excel单元格的公式
本文关键字:单元格 Excel 设置 函数 | 更新日期: 2023-09-27 18:19:30
我为Excel创建了一个自动化外接程序,实现为C#类库,其中包含一个UDF包装器。(我不使用VSTO)
我想在我的UDF中做的是:
1> 获取输入公式的单元格地址;
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只能向其调用单元格返回值,不允许覆盖自己的公式(或更改任何其他单元格的内容)。您需要创建一个命令来执行此操作。
'=SUM(2,2)'与'2+2'相同;
如果要添加单元格,例如"A1"answers"A4",则应使用以下格式"=SUM(A1,A4)"
或者要将单元格从"A1"添加到"A4",可以使用"=SUM(A1:A4)"。
或整列'B','=SUM(B:B)'。
尝试此目标.set_Value(RangeValueDataType:Type.Missing,Value:"=SUM(2,2)");