c#:以编程方式创建一个;“命名范围”;在工作表范围内

c#:以编程方式创建一个;“命名范围”;在工作表范围内,c#,excel,vsto,C#,Excel,Vsto,如何创建范围设置为工作表的“命名范围”?(由于我们可以从Excel手动执行此操作,我想有一种方法可以在代码中实现此操作) 使用“Range.name”属性设置名称将创建工作簿范围的命名范围。我试着在区域名称前面加上“!”正如建议的那样,但它不起作用。这个名字根本就不是那么确定的 你知道如何用C#实现这一点吗 更新(2013/05/16): 由沙卡尔佩什工作。我使用的原始代码(VS2010)是: using Excel = Microsoft.Office.Interop.Excel; Exce

如何创建范围设置为工作表的“命名范围”?(由于我们可以从Excel手动执行此操作,我想有一种方法可以在代码中实现此操作)

使用“
Range.name
”属性设置名称将创建工作簿范围的命名范围。我试着在区域名称前面加上“!”正如建议的那样,但它不起作用。这个名字根本就不是那么确定的

你知道如何用C#实现这一点吗

更新(2013/05/16): 由沙卡尔佩什工作。我使用的原始代码(VS2010)是:

using Excel = Microsoft.Office.Interop.Excel;

Excel.Worksheet ws = Globals.ThisAddIn.Application.ActiveSheet;
Excel.Range range = ws.Range[ws.Cells[x,y], ws.Cells[(x + height), (y + width)]];
range.Name = "MyName"; // MyName in workbook scope
有效的修改代码是:

ws.Names.Add("MyName", range); // MyName in worksheet scope
谢谢, idssl.

假设:
Sheet1有单元格A1:A4,您要为其创建命名区域

VBA:

Sheet1.Names.Add("tada", Sheet1.Range("A1:A4"))

我想它在c#中是相同的(除了结尾的
),并且为可选参数传递空参数。

请编码好吗?你是如何创建命名范围的?我在Excel中找到录制宏,然后查看它生成的代码可以帮助你找到后面的代码,用C#或任何你想要的语言来做事情。非常感谢你救了我一天是的,这就像shahkalpesh写的,除了他缺少右括号外:工作表。名称。添加(“MyRange”范围(“A1:A4”);另一个小问题是命名范围的范围界定。如果需要跨其他工作表访问它,请使用workbook.Names.Add(…)将其添加到工作簿对象。