Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit for-Schleife

Problem mit for-Schleife
18.10.2005 16:05:37
Gerit
Hallo,
ich habe folgendes Problem: Ich durchlaufe mir einer for-Schleife die tabelle_1.xls von D4 bis D100. Der Wert, der im jeweiligen Feld steht, wird in z gespeichert.
Dieser Wert wird dann in zwischentabelle.xls mit Cells.Find gesucht. Was dort gefunden wird, wird selektiert und in die Tabelle ergebnis.xls geschrieben.
Das Problem ist: Beim ersten Durchlauf funktioniert alles. Beim zweiten Durchlauf bricht er jedoch bei Cells.Find ab mit "Laufzeitfehler 91
: Objektvariable oder With-Blockvariable nicht festgelegt".
Was kann man da machen?
Windows("tabelle_1.xls").Activate

For Each z In Range("D4:D100")

Windows("zwischentabelle.xls").Activate
Range("A1").Select

Cells.Find(What:=z, After:=ActiveCell, SearchDirection:=xlNext, MatchCase:=False).Select

Selection.Copy


Windows("ergebnis.xls").Activate

Bereich = "G" & CStr(reihe_ergebnis)
Range(Bereich).Select
ActiveSheet.Paste

reihe_ergebnis = reihe_ergebnis + 1

Next z

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit for-Schleife
18.10.2005 17:22:16
gordon
Hi Gerit,
alle select und activate Befehle weglassen, die ranges sauber mit
dim rA1 as range
dim rGBereich as range
set rA1 = worksheets("Ziwschentabelle").range("A1")
set rGBereich = worksheets("Ergebnis").range( "G" & CStr(reihe_ergebnis))
.range und .cell beziehen sich nicht auf das richtige worksheet.
Gruß
gordon
AW: Problem mit for-Schleife
19.10.2005 09:14:51
Gerit
Hallo Gordon,
vielen Dank für die Hilfe! Ich habe mein Makro mal soweit angepasst, aber es läuft noch immer nicht zuverlässig. Es werden ein paar Durchläufe gemacht, und dann kommt irgendwann doch der Fehler 91.
Schon das Cells.Find gibt nicht das Suchergebnis zurück, sondern den Wert von z. Bei ActiveSheet.Paste wird überhaupt nichts eingesetzt. Set rA1 funktioniert auch nur sporadisch, sonst bleibt es immer in derselben Zeile und rückt jedes Mal eine Spalte weiter...
Sorry dass ich so dumm frage, aber mit VBA kenne ich mich wirlich nicht gut aus. Die Aufgabe ist ja an sich einfach:
Im sheet "tabelle1" befindet sich eine Spalte mit vierstelligen Zahlen. Im Sheet "zwischentabelle" befindet sich eine Spalte mit achtstelligen Zahlen. Ich will "tabelle1" zeilenweise durchgehen und dabei jede Zeile einzeln selektieren. Das Selektierte will ich in "zwischentabelle" suchen um da eine achtstellige Zahl zu finden, deren letzte vier Stellen mit der vierstelligen Zahl aus "tabelle1" übereinstímmen. Diese gefundene, achtstellige Zahl soll in "ergebnis" eingetragen werden.
Dim rA1 As Range
Dim rGbereich As Range
For Each z In Range("D4:D100")

Set rA1 = Worksheets("zwischentabelle").Range("A1")

Cells.Find(What:=z, After:=ActiveCell, SearchDirection:=xlNext, MatchCase:=False).Select

Selection.Copy



Set rGbereich = Worksheets("ergebnis").Range("G" & CStr(reihe_ergebnis))

ActiveSheet.Paste



reihe_ergebnis = reihe_ergebnis + 1

Next z
Anzeige
AW: Problem mit for-Schleife
19.10.2005 12:22:21
gordon
Hi Gerit,
lad' mal eine Beispieltabelle hoch.
Zahlen sind immer 8-stellig oder auch kürzer ?
range.find liefert bei korrekter Anwendung die Zelle zurück, wo der Wert gefunden wiird. Wert/Inhalt der Zelle dann mit c.value verwendbar.
Gruß
gordon

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige