ich habe leider, trotz langer Suche, nichts entsprechendes gefunden.
Den Titel konnte ich wegen der kürze nicht präziser machen. Ich bitte
daher um Nachsicht.
Meine Excel Datei hat 2 Tabellen, Tabelle 1 hat ca. 8000 Einträge,
Tabelle 2 hat ca. 2800 Einträge.
In Spalte A ist in beiden Tabellen ein eindeutiges Kriterium.
Ziel ist es, wenn das Kriterium in beiden Tabellen übereinstimmt,
aus Tabelle 2 einige Werte in Tabelle 1 zu kopieren, um diese
zu vervollständigen.
Dazu habe ich zwei verschachtelte Schleifen gemacht.
Schleife 1 durchläuft Spalte 1 aus Tabelle 1 (2-8000)
in welcher die Schleife 2 Spalte 1 aus Tabelle 2 durchläuft (2-2800)
Es wird pro Zeile in Tabelle 1 der Wert aus Spalte mit den durchlaufenden Zellen in Tabelle 2 verglichen.
Stimmt der Wert überein, dann lese ich div. Werte (z.B. A2, D2, F2) aus Tabelle2
und schreibe diese in andere Zellen in Tabelle1, zur Kontrolle ebenfalls in
eine Tabelle 3.
Zuerst scheint es gut zu funktionieren, die Schleifen laufen durch, es dauert
ein wenig, aber die Zeit spielt keine Rolle.
Beim Durchsehen war ich schon zufrieden, funktioniert. Jedoch musste ich dann aber feststellen, dass ab ca. Zeile 2700 von Tabelle 1 die Zellen nicht mehr ausgelesen werden, obwohl eine Übereinstimmung und Werte vorhanden sind. Die Übereinstimmung
wird auch angezeigt (ich lasse bei Übereinstimmung eine 1 in eine Zelle eintragen), es werden nur nicht mehr die Zellen beschrieben, die ich über Variablen auslese.
Das hat mir keine Ruhe gelassen und ich habe ein anderes Script gemacht,
welches nur die beiden Datensätze ohne Schleife, mit festen Bezügen,
vergleicht und vom Ablauf her dann das gleiche macht, wie mit Schleife.
Hier funktioniert das Auslesen und Eintragen ganz normal. Damit konnte
ich ausschließen, dass zufällig andere Datentypen das Problem sind.
Vielleicht weiß das jemand auf Anhieb. Laufen durch die zwei ineinander verschachtelten Schleifen irgendwelche Variablen über? Irgenwas falsch
dimensioniert? Die Variablentypen für die Schleifen stehen bei mir auf
long. Der Rest ist als String deklariert.
Zum Auslesen verwende ich z.B.
wert1 = worksheets("Tabelle1").range("A" & zeiletab1).value
und zum Schreiben umgekehrt
worksheets("Tabelle2").range("A" & zeiletab2).value = wert1
wie gesagt, funktioniert in der Schleife auch perfekt bis ca. Zeile 2700,
danach nicht mehr. Nur die Übereinstimmung wird noch geschrieben, aber keine
ausgelesenen Zellen mehr.
Danke für jeden Hinweis.