如何:列出工作簿中的所有工作表

更新:2007 年 11 月

适用于

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • Excel 2003

  • Excel 2007

有关更多信息,请参见按应用程序和项目类型提供的功能

Microsoft.Office.Interop.Excel.Workbook 类提供一个 Microsoft.Office.Interop.Excel.Worksheets 对象。此对象包含工作簿中所有 Microsoft.Office.Interop.Excel.Worksheet 对象的集合。

在文档级自定义项中列出工作簿中所有现有的工作表

  • 循环访问 Worksheets 集合,将每个表的名称发送到通过 NamedRange 控件偏移的单元格。

    Private Sub ListSheets()
        Dim index As Integer = 0
    
        Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
            Globals.Sheet1.Controls.AddNamedRange( _
            Globals.Sheet1.Range("A1"), "NamedRange1")
    
        For Each displayWorksheet As Excel.Worksheet In Globals.ThisWorkbook.Worksheets
            NamedRange1.Offset(index, 0).Value2 = displayWorksheet.Name
            index += 1
        Next displayWorksheet
    End Sub
    
    private void ListSheets()
    {
        int index = 0;
    
        Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
            Globals.Sheet1.Controls.AddNamedRange(
            Globals.Sheet1.Range["A1", missing], "NamedRange1");
    
        foreach (Excel.Worksheet displayWorksheet in Globals.ThisWorkbook.Worksheets)
        {
            NamedRange1.Offset[index, 0].Value2 = displayWorksheet.Name;
            index++;
        }
    }
    

在应用程序级外接程序中列出工作簿中所有现有的工作表

  • 循环访问 Worksheets 集合,将每个表的名称发送到与 Microsoft.Office.Interop.Excel.Range 对象偏移一定量的单元格。

    Private Sub ListSheets()
        Dim index As Integer = 0
    
        Dim rng As Excel.Range = Me.Application.Range("A1")
    
        For Each displayWorksheet As Excel.Worksheet In Me.Application.Worksheets
            rng.Offset(index, 0).Value2 = displayWorksheet.Name
            index += 1
        Next displayWorksheet
    End Sub
    
    private void ListSheets()
    {
        int index = 0;
    
        Excel.Range rng = this.Application.get_Range("A1", missing);
    
        foreach (Excel.Worksheet displayWorksheet in this.Application.Worksheets)
        {
            rng.get_Offset(index, 0).Value2 = displayWorksheet.Name;
            index++;
        }
    }
    

请参见

任务

如何:向工作簿添加新工作表

如何:在工作簿中移动工作表

概念

使用工作表

对 Visual Studio Tools for Office 项目中的对象的全局访问