如何:向工作表添加 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 控件

  1. 选择要包括在命名范围中的单元格。

  2. 在**“名称框”**中键入一个范围名称并按 Enter。

    **“名称框”位于编辑栏旁边,就在工作表的“A”**列的上方。

使用“工具箱”向工作表添加 NamedRange 控件

  1. 打开**“工具箱”,然后单击“Excel 控件”**选项卡。

  2. 单击 NamedRange 并将其拖动到工作表中。

    随即出现**“添加 NamedRange”**对话框。

  3. 选择要包括在命名范围中的单元格。

  4. 单击**“确定”**。

    如果不希望控件使用默认名称,则可以在**“属性”**窗口中更改此名称。

使用“数据源”窗口向工作表中添加 NamedRange 控件

  1. 打开**“数据源”**窗口,为项目创建一个数据源。 有关更多信息,请参见如何:连接到数据库中的数据

  2. 从**“数据源”**窗口中将一个字段拖到工作表中。

    一个绑定到数据的 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";
     }
    

请参见

任务

如何:调整 NamedRange 控件的大小

概念

在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿

NamedRange 控件

使用扩展对象实现 Excel 自动化

宿主项和宿主控件概述

宿主项和宿主控件的编程限制

其他资源

Office 文档上的控件