创build多个Excel电子表格

我正试图在一个Excel文件中创build多个电子表格,并且出现以下错误:

types为“应用程序类”的公共成员“工作簿”

这是我的代码:

Private Sub MakeExcelWorksheets_Click(sender As Object, e As EventArgs) Handles MakeExcelWorksheets.Click Dim xlApp As Excel.Application xlApp = CreateObject("Excel.Application") Dim newWorksheet As Excel.Worksheet Try newWorksheet = CType(xlApp.Workbook.Worksheets.Add(), Excel.Worksheet) Catch ex As Exception MessageBox.Show(ex.Message) Exit Sub End Try End Sub 

问题是Workbook (在你的代码中:… = CType(xlApp.Workbook …)不是Excel应用程序对象的属性,这就是为什么你会得到exception:

“找不到types为”ApplicationClass“的公共成员”工作簿“。

尝试这个…

  Imports Microsoft.Office.Interop Imports Microsoft.VisualBasic.Interaction Private Sub MakeExcelWorksheets_Click(sender As Object, e As EventArgs) Handles MakeExcelWorksheets.Click Dim xlApp As Excel.Application xlApp = DirectCast(CreateObject("Excel.Application"), Excel.Application) Dim newWorksheet As Excel.Worksheet Dim newWorkBook As Excel.Workbook Try 'newWorksheet = CType(xlApp.Workbook.Worksheets.Add(), Excel.Worksheet) If xlApp.Workbooks.Count > 0 Then newWorkBook = DirectCast(xlApp.Workbooks(1), Excel.Workbook) Else newWorkBook = DirectCast(xlApp.Workbooks.Add(), Excel.Workbook) End If newWorksheet = DirectCast(newWorkBook.Sheets.Add(), Excel.Worksheet) Catch ex As Exception MessageBox.Show(ex.Message) Exit Sub End Try End Sub 

如果确保Excel应用程序对象肯定至less有一个工作簿,则可能不需要添加新工作簿的逻辑。

这应该解决您报告的exception,并在Excel工作簿中生成一个新的实例化“工作表”对象。

如果要将多个工作Sheets添加到您的Excel Workbook ,请执行以下操作:

 Dim app As New Excel.Application Dim wb As Excel.Workbook = app.Workbooks.Add() Dim ws As Excel.Worksheet ws = CType(wb.Sheets.Add(Count:=10), Excel.Worksheet) 

默认情况下, Workbook附带一张Workbook Sheet 。 如果要添加多个设置Count:=参数。 正如你在我的例子中所看到的,我使用了10 。 这将使我有11张工作。

请注意, ws现在将成为Workbook的最后一个工作表。 在我的例子中,这将是Sheet11

如果你想使用每个Worksheet那么你需要看看下面的代码:

 Dim ws1 As Excel.Worksheet = CType(wb.Sheets(1), Excel.Worksheet) Dim ws2 As Excel.Worksheet = CType(wb.Sheets.Add(), Excel.Worksheet) 

请注意ws1引用到第一个工作表。 如上所述,默认情况下, Workbook附带一张表。

轻微的注意。 你不需要xlApp = CreateObject("Excel.Application") 。 因为您已经在使用Excel对象,所以请使用Dim xlApp As New Excel.Application