Com Fehler in Excel kommunikation

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Com Fehler in Excel kommunikation

    Guten Abend liebe Forumsgemeinschaft habe da ein problem mit dem ich nicht weiterkimme.

    in folgendem Code kommt es zu einer fehler meldung die ich nicht zuordnen kann geschweige denn lösen kann.

    VB.NET-Quellcode

    1. Sub teil5()
    2. Dim Excel As Object, Workbook_App1 As Object
    3. Dim finder As Integer = TextBox9.Text
    4. Excel = CreateObject("Excel.Application")
    5. With Excel.Application
    6. .DisplayAlerts = False
    7. End With
    8. Workbook_App1 = Excel.Workbooks.OpenXML(Application.StartupPath & "\bin\speicher.dat")
    9. am.Text = Workbook_App1.Sheets(1).Cells(finder, 103).formula()
    10. an.Text = Workbook_App1.Sheets(1).Cells(finder, 104).formula()
    11. ao.Text = Workbook_App1.Sheets(1).Cells(finder, 105).formula()
    12. ap.Text = Workbook_App1.Sheets(1).Cells(finder, 106).formula()
    13. aq.Text = Workbook_App1.Sheets(1).Cells(finder, 107).formula()
    14. ar.Text = Workbook_App1.Sheets(1).Cells(finder, 108).formula()
    15. at.Text = Workbook_App1.Sheets(1).Cells(finder, 109).formula()
    16. au.Text = Workbook_App1.Sheets(1).Cells(finder, 110).formula()
    17. av.Text = Workbook_App1.Sheets(1).Cells(finder, 111).formula()
    18. aw.Text = Workbook_App1.Sheets(1).Cells(finder, 112).formula()
    19. ax.Text = Workbook_App1.Sheets(1).Cells(finder, 113).formula()
    20. ay.Text = Workbook_App1.Sheets(1).Cells(finder, 114).formula()
    21. TextBox171.Text = Workbook_App1.Sheets(1).Cells(finder, 115).formula
    22. TextBox172.Text = Workbook_App1.Sheets(1).Cells(finder, 116).formula
    23. TextBox11.Text = Workbook_App1.Sheets(1).Cells(finder, 117).formula
    24. Workbook_App1.Close() 'Fehler
    25. With Excel.Application
    26. .DisplayAlerts = True
    27. End With
    28. For Each Process In System.Diagnostics.Process.GetProcessesByName("excel")
    29. Process.Kill()
    30. Next
    31. End Sub


    der fehler kommt in der workbook close() anweisung
    wie ihr an dem namen des sub's lesen könnt gibt es 5 teile und alle kommuniezieren mit der selben excel datei.
    habe deise jetzt nur getrennt weil ich dachte der fehler kommt weil ich hn zu viele datensätze importieren lasse. Dem ist aber nicht so.
    Als das ganze noch ein großes sub war kam die fehlermeldung auch allerdings an einer anderen stelle . wenn ich die zeile Workbook close lösche dann kommt der fehler in der darauf folgenden zeile...
    Der Fehler lautet:COMExeption wurde nicht behandelt. Der Remoteprozeduraufruf ist fehlgeschlagen. (Ausnahme von HRESULT: 0x800706BE)
    Nun ich weis nicht mehr weiter kann mir jemand sagen wie ich den fehler behandeln, lösen oder vlt umgehen kann?

    LG Philipp

    Edit_____
    wenn ich das sub ausführe und der fehler angezeigt wird und ich dann den Haltecursor (das gelbe ding da am rand wenn er das sub pausiert und den fehler anzeigt) wieder auf die anfangs zeile stelle (Sub Teil5() ) dann führt er das sub aus ohne zumekern obwohl ich bis auf den cursor nichts geändert habe.

    LG Philipp

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Senubius“ ()

    xtts02 schrieb:

    Senubius schrieb:

    der fehler kommt in der workbook close() anweisung

    Das ist daran, weil Du Workbook_App1 als Object definiert hast und ein Object hat nun mal keine Close-Methode.
    Wenn Workbook_App1 ein WorkBook sein soll, dann definiere diese auch als Excel.WorkBook



    Hab ich ja (siehe anweisung um Workbook_App1 = Excel.Workbooks.OpenXML(Application.StartupPath & "\bin\speicher.dat")

    und der code funzt ja auch (beim 2 mal durchlaufen in dem oben beaschriebenen 5. teil und den 4 teilen davor auf anhieb ind den anderen forms auch also daran liegts nicht überseh ich irgendwas in SUB teil 4 warte ich post mal

    VB.NET-Quellcode

    1. Sub teil4()
    2. Dim Excel As Object, Workbook_App As Object
    3. Dim finder As Integer = TextBox9.Text
    4. Excel = CreateObject("Excel.Application")
    5. With Excel.Application
    6. .DisplayAlerts = False
    7. End With
    8. Workbook_App = Excel.Workbooks.OpenXML(Application.StartupPath & "\bin\speicher.dat")
    9. aa.Text = Workbook_App.Sheets(1).Cells(finder, 91).formula()
    10. ab.Text = Workbook_App.Sheets(1).Cells(finder, 92).formula()
    11. ac.Text = Workbook_App.Sheets(1).Cells(finder, 93).formula()
    12. ad.Text = Workbook_App.Sheets(1).Cells(finder, 94).formula()
    13. ae.Text = Workbook_App.Sheets(1).Cells(finder, 95).formula()
    14. af.Text = Workbook_App.Sheets(1).Cells(finder, 96).formula()
    15. ag.Text = Workbook_App.Sheets(1).Cells(finder, 97).formula()
    16. ah.Text = Workbook_App.Sheets(1).Cells(finder, 98).formula()
    17. ai.Text = Workbook_App.Sheets(1).Cells(finder, 99).formula()
    18. aj.Text = Workbook_App.Sheets(1).Cells(finder, 100).formula()
    19. ak.Text = Workbook_App.Sheets(1).Cells(finder, 101).formula()
    20. al.Text = Workbook_App.Sheets(1).Cells(finder, 102).formula()
    21. Workbook_App.Close()
    22. With Excel.Application
    23. .DisplayAlerts = True
    24. End With
    25. For Each Process In System.Diagnostics.Process.GetProcessesByName("excel")
    26. Process.Kill()
    27. Next
    28. End Sub


    funzt es einwandfrei nur im 5 teil nicht.