Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formel via VBA in best. (viele) Zellen einfügen

Formel via VBA in best. (viele) Zellen einfügen
Klaus
Hallihallo zusammen,
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!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Wo kommt der Wert v.Varverkett2 her,...
15.09.2010 16:53:30
Luc:-?
…Klaus,
oder verwendest du etwa immer noch den Zyklus?
Gruß Luc :-?
AW: Formel via VBA in best. (viele) Zellen einfügen
15.09.2010 16:54:27
EvilRik
Halllo Klaus,
ich gehe mal davon aus, dass du WSDatei2 definiert hast!?
Deine Variable Varverkett2 muss in diesen Fällen natürlich ein fester Wert sein (z.B. Letztezeile2) ;) .
Ansonsten funktioniert es einwandfrei.
Gruß Henrik
Probiere es mit Letztezeile2 anstatt Varverkett2
15.09.2010 17:03:35
NoNet
Hallo Klaus,
nach Deinem Beispiel muss es so lauten :
WSDatei2.Range(Cells(2, 14), Cells(Letztezeile2, 14)).FormulaR1C1 = "=CONCATENATE(R[0]C[-13],R[0]C[-11])"
oder auch so :
WSDatei2.Range("N2:N" & Letztezeile2).FormulaR1C1 = "=CONCATENATE(R[0]C[-13],R[0]C[-11])
Gruß, NoNet
Anzeige
Ich "Blinder" danke euch...
15.09.2010 19:19:37
Klaus
Holla,
man sollte halt nicht den ganzen Tag vor dem PC hocken und Codezeilen betrachten.
Ist ja logisch... aber das hab ich in meinem Elend wohl übersehen.
Jetzt klappts auch recht rasch. Für Vergleich zweier Tabellen mit je ca. 2200 Zeilen (á 12 Spalten) brauchts jetzt rund 50 Sekunden. Das ist akzeptabel wie ich finde.
So, ich hoffe jetzt haut alles Weitere hin... wenn nicht komm ich gerne wieder.. :)
Danke euch nochmal recht brav,
Klaus

470 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige