Hi,
ich habe ein Problem mit der Laufzeit meiner Anwendung. Ich möchte aus zwei Tabellenblätter die Datensätze miteinander vergleichen und dann die übereinstimmenden Datensätze in ein neues Tabellenblatt schreiben.
So sind meine Tabellenblätter aufgebaut:
Tabellenblatt 1:
Spalte 1 | Spalte 2 | Spalte 3 | ....
KundenNr | Name | Vorname |....
Tabellenblatt 2:
Spalte 1 | Spalte 2 | Spalte 3 | ....
Straße | PLZ | KundenNr |...
Neues Tabellenblatt 3:
Spalte 1 | Spalte 2 | Spalte 3 | ....
KundenNr | Name | Straße |....
Bisher habe ich es mit zwei Schleifen und eine IF-Abfrage gelöst.
z.B.:
For i = 1 To AnzahlZeilenTabellenblatt1
For j = 1 To AnzahlZeilenTabellenblatt2
If Tabellenblatt1.Cells(i,1) = Tabellenblatt2.Cells(j,1) Then
Tabellenblatt3.Cells(i,1) = Tabellenblatt1.Cells(i,1)
Tabellenblatt3.Cells(i,2) = Tabellenblatt1.Cells(i,2)
Tabellenblatt3.Cells(i,3) = Tabellenblatt2.Cells(j,1)
Else
End If
Next j
Next i
Das funktioniert auch grundsätzlich, nur ist die Laufzeit extrem lang, wenn viele Datensätze vorhanden sind. Und eigentlich sind die Tabellenblätter in unterschiedlichen Excel-Dateien enthalten (bisher kopiere ich zuerst ein Tabellenblatt in eine der Dateien und lösche nach der Abfrage das Tabellenblatt wieder.
Jetzt meine Frage: Gibt es eine einfachere/schnellere Möglichkeit die Datensätze miteinander zu Vergleichen und in ein neues Tabellenblatt zu schreiben?
Vielen Dank
LG Gunther
|