Mehrere Worksheets zu Excel in VB 2010 hinzufügen

Vika89

Grünschnabel
Hallo Zusammen :)

Ich bin bereits schon länger an dem Projekt am arbeiten,jedoch stoße ich immer auf neue Probleme.
Nun zum Problem.
Ich habe eine Windows Form,in die die Daten eingegeben werden.DIese möchte ich über einen ButtonClick an Excel übergeben,mit einem Worksheet klappt es auch,außer dass der Pfad irgendwelche Probleme machte,sodass nach dem Eintrag in Excel das Programm abstürzte.
Ich habe jetzt noch 2 Sheets hinzugefügt und auch schon für die Übergabe vorbereitet,doch wenn ich den Button nutze stürzt das Programm ab aber das schlimmere ist,die Vorlagen für Excel werden nicht in einem Workbook geladen :confused:
Ich habe bereits Google und zahlreiche Foren und auch tutorials durchforstet,aber leider keine passende Lösung für mein Prtoblem gefunden.
Ich hoffe auf ein Tipp ode rmöglichen Ansatz für eine Lösung von Euch..
Bedanke mich im Vorraus

Gruß

Der Code :
Code:
 Private Sub NAR(ByVal o As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(o)
        Catch ex As Exception
        Finally
            o = Nothing
        End Try
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim xlsApp As New Microsoft.Office.Interop.Excel.Application
        Dim xlsWb As Microsoft.Office.Interop.Excel.Workbook = xlsApp.Workbooks.Add
        xlsApp = Microsoft.VisualBasic.CreateObject("Excel.Application")
        xlsWb = xlsApp.Workbooks.Open("Pfad.xls")
       With xlsWb
            .Sheets("Tabelle1").Select()
            .Sheets("Tabelle1").Name = "SC"
            .Sheets("Tabelle2").Name = "B"
            .Sheets("Tabelle3").Name = "A"
        End With
        xlsApp.Visible = True
        Dim xlsSCAs New Microsoft.Office.Interop.Excel.Worksheet
        xlsSC = xlsApp.Worksheets(1).
       '\\Daten die ich Übergebe

        Dim xlsAAs Microsoft.Office.Interop.Excel.Worksheet
        xlsA = xlsApp.Worksheets(2)
        '\\Daten die ich übergebe

        Dim xlsB As New Microsoft.Office.Interop.Excel.Worksheet
        xlsB = xlsApp.Worksheets(3)
        '\\Daten die ich übergebe

        xlsWb.SaveAs("Pfad.xls")

        NAR(xlsA)
        xlsWb.Close(SaveChanges:=True)
        NAR(xlsB)
        xlsWb.Close(SaveChanges:=True)
        NAR(xlsSC)
        xlsWb.Close(SaveChanges:=True)
        NAR(xlsSC)
        xlsApp.Workbooks.Close()
        NAR(xlsApp.Workbooks)
        xlsApp.Quit()
        NAR(xlsApp)
        GC.WaitForPendingFinalizers()
        GC.Collect()
    End Sub
 
Morgen allerseits :).
Hab mein Problem nun endlich erkannt,schreibe dies falls noch jemand das selbe Problem haben sollte.
Ich hatte vergessen die Sheets,die ich als Vorlagen in den Workbook nutzen wollte,in das Workbook vorher rein zu kopieren.Und dann kamen noch ein paar kleine Veränderungen des Codes,sodass das jetzt einwandfrei klappt :)

Gruß

Hier mein Code:

Code:
 Private Sub NAR(ByVal o As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(o)
        Catch ex As Exception
        Finally
            o = Nothing
        End Try
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        xlsApp = New Microsoft.Office.Interop.Excel.Application
        xlsWb = New Microsoft.Office.Interop.Excel.Workbook
        xlsWb = xlsApp.Workbooks.Open("C:Pfad.xls")
        xlsSheet1 = New Microsoft.Office.Interop.Excel.Worksheet
        xlsSheet2 = New Microsoft.Office.Interop.Excel.Worksheet
        xlsSheet3 = New Microsoft.Office.Interop.Excel.Worksheet
        xlsApp.Visible = True

xlsSheet1 = xlsApp.Worksheets(1)
        'Vorher habe ich eine Prozedur für das Befüllen der Tabelle geschrieben,diese rufe ich hier auf
Call xlsSheet1_Fill ()      

 xlsSheet2= xlsApp.Worksheets(2)
      'Prozeduraufruf
        Call xlsSheet2_Fill ()
      
       xlsSheet3 = xlsApp.Worksheets(3)
       'Prozeduraufruf
        Call xlsSheet3_Fill ()
       
        xlsWb.SaveAs("C:Pfad.xls") => Aber leider tritt bei mir ein Fehler beim speichern auf,vielleicht könnte mir jemand dafür einen Tipp geben,woran es liegen könnte!!
        
        NAR(xlsSheet3)
        xlsWb.Close()
        NAR(xlsSheet2)
        NAR(xlsSheet1)
        NAR(xlsWb)
        xlsApp.Workbooks.Close()
        NAR(xlsApp.Workbooks)
        xlsApp.Quit()
        NAR(xlsApp)
        GC.WaitForPendingFinalizers()
        GC.Collect()
    End Sub
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück