Excel Daten vergleichen und doppelte in neue Excel Datei kopieren.

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Excel Daten vergleichen und doppelte in neue Excel Datei kopieren.

    Hallo Zusammen,

    ich hab mir nun zwei den Kopf zerbrochen und komme nicht weiter.
    Mein Problem ist folgendes:

    Ich würde gerne zwei Excel Dateien einlesen, jeweils eine komplette Spalte (also A0 - AX) mit einer anderen vergleichen (also B0 - BX).
    Das einbinden von Excel und das einlesen der Daten bekomme ich auch gut hin.

    Nun komme ich beim vergleichen absolut nicht weiter :(
    Hier wäre ein Code Teil:

    Quellcode

    1. Dim xlFile1 As Excel.Workbook
    2. xlFile1 = xlApp.Workbooks.Open(OpenFileDialog1.FileName)
    3. Dim xlFS1 As Excel.Worksheet
    4. xlFS1 = xlFile1.Worksheets(1)
    5. 'Einbindung Excel-FILE1 ins System
    6. Dim xlFile2 As Excel.Workbook
    7. xlFile2 = xlApp.Workbooks.Open(OpenFileDialog2.FileName)
    8. Dim xlFS2 As Excel.Worksheet
    9. xlFS2 = xlFile2.Worksheets(1)
    10. 'Einbindung Excel-FILE2 ins System
    11. Dim xlGoal As Excel.Workbook
    12. xlGoal = xlApp.Workbooks.Open(OpenFileDialog3.FileName)
    13. Dim xlGS1 As Excel.Worksheet
    14. xlGS1 = xlGoal.Worksheets(1)
    15. 'Einbindung Excel-ZIEL ins System
    16. Dim Ergebnis As String
    17. For i = 1 To xlFS1.UsedRange.Rows.Count
    18. For i2 = 1 To xlFS2.UsedRange.Rows.Count
    19. For i3 = 1 To xlGS1.Rows.Count
    20. If xlFile1.Sheets(1).cells(Suche1, i).formula Is xlFile2.Sheets(1).cells(Suche2, i2).formula Then
    21. Ergebnis = xlFile2.Sheets(1).cells(Suche2, i2)
    22. xlGoal.Sheets(1).cells(1, i3) = Ergebnis
    23. 'Vergleiche Spalten und Trage sie in neue Sheet ein
    24. End If
    25. Next i3
    26. Next i2
    27. Next i
    28. xlGS1.SaveAs(OpenFileDialog3.FileName)
    29. xlGoal.Close()
    30. xlFile2.Close()
    31. xlFile1.Close()


    Ich habe meine drei Dateien definiert, über den Opener eingeladen und wäre bereit zur Verarbeitung.
    Aber ich komm absolut nicht drauf wie ich die Felder aus xlFS1 mit xlFS2 nun erfolgreich vergleichen kann

    Ich möchte, dass wenn beide verglichenen Felder absolut identisch sind vom Inhalt her, dass er mir exakt dieses Feld dann aus xlFS2 nach xlGoal kopiert.
    Wo liegt mein Denkfehler?

    Ist womöglich mein Formula falsch? Ich habe es auch schon mit .value versucht - Fehlanzeige - ich steige hier echt nicht durch
    liebe Grüße aus dem Allgäu
    Koopa

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

    Ich habe mir das nicht intensiv angesehen.
    Wie ist denn die Performance?
    Es könnte ein Problem sein, mit ​UsedRange.Rows.Count zu arbeiten, wenn die Worksheets viele blinde Zellen haben.
    Wenn UsedRange sauber ist, ist es OK.
    Aber schau dir mal den UsedRange an, wenn du aus Versehen in Zeile 100000 etwas eingetragen hast (selbst wenn du den Inhalt später wieder löschst).
    Ich ermittle bei kritischen Sheets die letzte Zeile gerne mit ​Cells(Rows.Count,1).End(xlUp).Row.
    Dann fallen blinde Bereiche raus.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --