如何:列出工作簿中的所有工作表
Microsoft.Office.Interop.Excel.Workbook 类提供一个 Microsoft.Office.Interop.Excel.Worksheets 对象。 此对象包含工作簿中所有 Microsoft.Office.Interop.Excel.Worksheet 对象的集合。
**适用于:**本主题中的信息适用于 Excel 2007 和 Excel 2010 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
在文档级自定义项中列出工作簿中所有现有的工作表
循环访问 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++; } }