以编程方式列出工作簿中的所有工作表

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

适用于: 本主题中的信息适用于 Excel 的文档级项目和 VSTO 外接程序项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。

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

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

    private void ListSheets()
    {
        int index = 0;
    
        Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
            Globals.Sheet1.Controls.AddNamedRange(
            Globals.Sheet1.Range["A1"], "NamedRange1");
    
        foreach (Excel.Worksheet displayWorksheet in Globals.ThisWorkbook.Worksheets)
        {
            NamedRange1.Offset[index, 0].Value2 = displayWorksheet.Name;
            index++;
        }
    }
    

若要列出 VSTO 外接程序中的工作簿中的所有现有工作表

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

    private void ListSheets()
    {
        int index = 0;
    
        Excel.Range rng = this.Application.get_Range("A1");
    
        foreach (Excel.Worksheet displayWorksheet in this.Application.Worksheets)
        {
            rng.get_Offset(index, 0).Value2 = displayWorksheet.Name;
            index++;
        }
    }