c#:以编程方式在工作表范围内创建"命名范围"

Upe*_*dra 3 c# excel vsto

我们如何创建一个将其范围设置为工作表的"命名范围" ?(因为我们可以从Excel手动执行此操作,我想在代码中有一种方法)

使用' Range.Name'属性设置名称会创建一个工作簿范围的命名范围.我尝试使用'<Sheet Name>'为范围名称添加前缀!正如这里所建议的,但它不起作用.该名称并未完全设置.

想知道如何在C#中完成这项工作?

更新(2013/05/16): 回答 shahkalpesh工作.我使用的原始代码(在VS 2010中)是:

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
Run Code Online (Sandbox Code Playgroud)

有效的修改代码是:

ws.Names.Add("MyName", range); // MyName in worksheet scope
Run Code Online (Sandbox Code Playgroud)

谢谢,idssl.

sha*_*esh 9

假设:
Sheet1具有单元格A1:A4,您要为其创建命名范围

VBA:

Sheet1.Names.Add("tada", Sheet1.Range("A1:A4"))
Run Code Online (Sandbox Code Playgroud)

我想它在c#中是相同的(除了;最后)并为可选参数传递空参数.

  • 是的,它是像shahkalpesh写的,表示他缺少右括号:worksheet.Names.Add("MyRange",worksheet.Range("A1:A4")); (3认同)