Kleine Frage wegen Excel nutzung in Vb.net

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Black-Mage.

    Kleine Frage wegen Excel nutzung in Vb.net

    Hallo ich wollte einige Bereiche zweier Excel Dokumente kopieren. Hier ist ein kleiner Bereich meines Codes der eben die Probleme macht.
    Und zwar mag Visual Studio die Zeile Dim cellValue As Object = cell.Value nicht, weil Option Strict on aktiv ist, und somit späteres Binden nicht klappt-
    Wie könnte ich das denn umändern, dass es wieder geht? Ich wähle diese Ansatz weil ich Verbundene Zellen habe, und diese leider nicht auseinander nehmen kann.

    VB.NET-Quellcode

    1. Sub ExcelExport(workbookalt As String, Workbookneu As String)
    2. Dim MyExcel As New Excel.Application
    3. Dim xlWorkbookalt As Excel.Workbook = MyExcel.Workbooks.Open(workbookalt)
    4. Dim xlWorkbookneu As Excel.Workbook = MyExcel.Workbooks.Open(Workbookneu)
    5. Dim xlWorksheetalt As Excel.Worksheet = DirectCast(xlWorkbookalt.Sheets("Charakter"), Excel.Worksheet)
    6. Dim xlWorksheetneu As Excel.Worksheet = DirectCast(xlWorkbookneu.Sheets("Charakter"), Excel.Worksheet)
    7. Dim rangeToCopy As Excel.Range = xlWorksheetalt.Range("I7:I12")
    8. Dim destinationRange As Excel.Range = xlWorksheetneu.Range("I7:I12")
    9. For Each cell In rangeToCopy.Cells
    10. Dim cellValue As Object = cell.Value
    11. destinationRange.Value = cellValue
    12. destinationRange = destinationRange.Offset(1, 0)
    13. Next
    14. rangeToCopy.Copy(destinationRange)
    15. xlWorkbookalt.Close(SaveChanges:=False)
    16. xlWorkbookneu.Close(SaveChanges:=True)
    17. MyExcel.Quit()
    18. End Sub


    CodeTags korrigiert; bitte zukünftig darauf achten, das richtige CodeHighlighting zu verwenden ~VaporiZed

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    For Each cell In rangeToCopy.Cells ist das Problem. Mach mal als ersten Schritt was Konkretes draus:

    VB.NET-Quellcode

    1. For Each cell As Microsoft.Office.Interop.Excel.Range In rangeToCopy.Cells
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Vielen lieben dank. Ich habe nun die Zeile so geändert:

    VB.NET-Quellcode

    1. For Each cell As Excel.Range In rangeToCopy.Cells


    da ich schon die Interop importiere. Des weiteren habe ich den überbleibsel aus meinen Versuchen

    VB.NET-Quellcode

    1. rangeToCopy.Copy(destinationRange)

    gelöscht, der sollte nicht mehr da sein eigtl.

    und letztes habe ich bei der Zeile

    VB.NET-Quellcode

    1. Dim destinationRange As Excel.Range = xlWorksheetneu.Range("I7:I12")

    nun das stehen

    VB.NET-Quellcode

    1. Dim destinationRange As Excel.Range = xlWorksheetneu.Range("I7")

    (weil er mehr eingefügt hatte als er sollte)

    jetzt funktioniert alles. :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Black-Mage“ ()