如何:向工作表添加 NamedRange 控件
在文档级项目中,可以在设计时和运行时向 Microsoft Office Excel 工作表添加 NamedRange 控件。
**适用于:**本主题中的信息适用于 Excel 2007 和 Excel 2010 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
在应用程序级外接程序项目中,还可以在运行时添加 NamedRange 控件。
本主题介绍了以下任务:
在设计时添加 NamedRange 控件
在运行时在文档级项目中添加 NamedRange 控件
在运行时在应用程序级项目中添加 NamedRange 控件
有关 NamedRange 控件的更多信息,请参见 NamedRange 控件。
在设计时添加 NamedRange 控件
有多种方法可用来在设计时在文档级项目中向工作表添加 NamedRange 控件:从 Excel 内添加,从 Visual Studio 的**“工具箱”中添加,以及从“数据源”**窗口中添加。
提示
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置。
在 Excel 中使用“名称框”向工作表添加 NamedRange 控件
选择要包括在命名范围中的单元格。
在**“名称框”**中键入一个范围名称并按 Enter。
**“名称框”位于编辑栏旁边,就在工作表的“A”**列的上方。
使用“工具箱”向工作表添加 NamedRange 控件
打开**“工具箱”,然后单击“Excel 控件”**选项卡。
单击 NamedRange 并将其拖动到工作表中。
随即出现**“添加 NamedRange”**对话框。
选择要包括在命名范围中的单元格。
单击**“确定”**。
如果不希望控件使用默认名称,则可以在**“属性”**窗口中更改此名称。
使用“数据源”窗口向工作表中添加 NamedRange 控件
打开**“数据源”**窗口,为项目创建一个数据源。 有关更多信息,请参见如何:连接到数据库中的数据。
从**“数据源”**窗口中将一个字段拖到工作表中。
一个绑定到数据的 NamedRange 控件即被添加到工作表中。 有关更多信息,请参见数据绑定和 Windows 窗体。
在运行时在文档级项目中添加 NamedRange 控件
您可以以编程方式在运行时将 NamedRange 控件添加到工作表中。 这使您能够为响应事件而创建宿主控件。 关闭工作表时,动态创建的命名范围不会像宿主控件一样保留在工作表中。 有关更多信息,请参见在运行时向 Office 文档添加控件。
以编程方式向工作表添加 NamedRange 控件
在 Sheet1 的 Startup 事件处理程序中插入以下代码,以将 NamedRange 控件添加到单元格**“A1”**中,并将其 Value2 属性设置为 Hello world!
Dim textInCell As Microsoft.Office.Tools.Excel.NamedRange textInCell = Me.Controls.AddNamedRange(Me.Range("A1"), "cellText") textInCell.Value2 = "Hello world!"
Microsoft.Office.Tools.Excel.NamedRange textInCell; textInCell = this.Controls.AddNamedRange(this.get_Range("A1", missing), "cellText"); textInCell.Value2 = "Hello world!";
在运行时在应用程序级项目中添加 NamedRange 控件
您可以以编程方式在应用程序级项目中向任何打开的工作表添加 NamedRange 控件。 关闭工作表时,动态创建的命名范围不会像宿主控件一样保留在工作表中。 有关更多信息,请参见在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿。
以编程方式向工作表添加 NamedRange 控件
下面的代码生成一个基于打开的工作表的工作表宿主项,然后向**“A1”**单元格添加一个 NamedRange 控件并将其 Value2 属性设置为 Hello world。
Private Sub AddNamedRange() Dim textInCell As Microsoft.Office.Tools.Excel.NamedRange Dim NativeWorksheet As Microsoft.Office.Interop.Excel.Worksheet = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets(1) ' Use the following line of code in projects that target the .NET Framework 4. Dim worksheet As Microsoft.Office.Tools.Excel.Worksheet = Globals.Factory.GetVstoObject(NativeWorksheet) ' In projects that target the .NET Framework 3.5, use the following line of code. ' Dim worksheet = CType(Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets(1), _ ' Excel.Worksheet).GetVstoObject() Dim cell As Excel.Range = worksheet.Range("A1") textInCell = worksheet.Controls.AddNamedRange(cell, "MyNamedRange") textInCell.Value2 = "Hello World" End Sub
private void AddNamedRange() { Microsoft.Office.Tools.Excel.NamedRange textInCell; // Use the following line of code in projects that target the .NET Framework 4. Worksheet worksheet = Globals.Factory.GetVstoObject( Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[1]); // In projects that target the .NET Framework 3.5, use the following line of code. // Worksheet worksheet = // ((Excel.Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[1]).GetVstoObject(); Excel.Range cell = worksheet.Range["A1", missing]; textInCell = worksheet.Controls.AddNamedRange(cell, "MyNamedRange"); textInCell.Value2 = "Hello World"; }
请参见
任务
概念
在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿