und zwar mache ich u.a. einen Vergleich von 2 Tabellen mit mehreren Spalten und vielen Zeilen (meist um die 2500). [Vergleichscode ursprünglich von Hajo-Excel.de... vielen Dank an der Stelle!!]
Ich habs so hinprogrammiert und es hat im Kleinen auch gut funktioniert. Allerdings hab ich dann beim Realen Testlauf gewartet bis ich schwarz wurde (fast halt).
Folgendes: ich muss für den Vergleich den Inhalt zweier Zellen verketten (in jeder Zeile) und diesen verketteten Inhalt dann als "Werte" in die jeweilige Nachbarzelle kopieren (nur so funzt der Vergleich).
Nun hab ich gemerkt dass das Verketten sehr langsam geht, so ca. 3 Zeilen pro Sekunde. Bei insgesamt rd. 5000 dauert das dann halt lange. Ich denke das ist der Grund.
Ich mache das mit dem Verketten aktuell so:
For Varverkett2 = 2 To Letztezeile2
WSDatei2.Cells(Varverkett2, 14).FormulaR1C1 = "=CONCATENATE(R[0]C[-13],R[0]C[-11])"
Next Varverkett2
Wobei LetzteZeile2 die zuvor ermittelte letzte belegte Zeile ist.
So fügt das Programm Schritt für Schritt die Verkettenformel ein.
Nun dachte ich daran, dass ich evtl. die Formel in den ganzen Bereich (von N2 bis NLetztezeile2) auf einmal schreiben kann - es müsste sich dann eh jede Zeile relativ auf die linken Zellen beziehen, denke ich.
Ich wollte das mit:
WSDatei2.Range(Cells(2, 14), Cells(Varverkett2, 14)).FormulaR1C1 = "=CONCATENATE(R[0]C[-13],R[0]C[-11])"
oder mit
WSDatei2.Range("N2:N" & Varverkett2).FormulaR1C1 = "=CONCATENATE(R[0]C[-13],R[0]C[-11])
machen, aber das geht nicht.
Fehler (in der Reihenfolge):
Anwendungs- oder objektdefinierter Fehler bzw.
die Methode 'Range' für das Objekt '_Worksheet' ist fehlgeschlagen.
Weiß jemand Rat?
Vielen Dank,
schöne Grüße!