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

标签 c# excel vsto

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

使用“Range.Name”属性设置名称会创建工作簿范围内的命名范围。我尝试在范围名称前加上“!”按照建议here ,但它不起作用。名称根本不会以这种方式设置。

知道如何在 C# 中完成此操作吗?

更新 (2013/05/16): Answer由 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

有效的修改代码是:

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

谢谢, idssl.

最佳答案

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

VBA:

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

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

关于c#:以编程方式在工作表范围内创建 "named range",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568476/

相关文章:

c# - [DataContract] 的命名空间

c# - 使用 JSON 将数据存储在文本文件中

c# - 当托管在 VSTO/Outlook 加载项中的 ElementHost 中时,WPF 文本框不允许撤消

c# - Word vsto 获取带有隐藏字符的文档文本

c# - 将 css 样式表的内容呈现为内联样式属性

c# - 从 MethodInfo 生成 DynamicMethod

excel - 如何在 SelectionChange 之前触发 EXCEL 事件 BeforeDoubleClick?

xml - 使用 VBA 存在命名空间时获取 XML 节点值

excel - 对 B 列求和,直到 A 列发生任何变化

使用 ppPasteMetafilePicture 时,C# vsto Powerpoint PasteSpecial 失败