1te Schleife:
Du benutzt keine Variablen die die Schleife verändert, das Ergebnis ist also immer False (Endlosschleife) oder immer True (keine Schleife).
Do Until cells(i+1,3) = Range("A1")
Range("C1:C5").Select
Selection.Copy
Range("B1:B5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'statements
I=i+1
if i = rows.count then exit do
Loop
So hast du zwar eine Schleife mit sinnvoller Abbruchbedingung, allerdings macht der Code den die Schleife mit jedem Druchlauf ausführt keinerlei Sinn, da er absolut ist. Da ich aber nicht weißt, was du damit erreichen willst, kann ich dir aber leider nicht sagen wie es richtig geschrieben wird.
2te Schleife:
Im grunde das gleiche Problem, die For-Schleife macht nichts weiter als die Schleifenvariable (i in deinem Fall) hochzuzählen (oder mit step -x runterzählen) und nach jedem hochzählen den Code zwischen "For..." und "Next" auszuführen. Da der Codeteil innerhalb der Schleife aber absolut ist und keinen Bezug zur Schleifenvariable hat, hat die Schleife keinen Effekt (abgesehen davon, dass das Makro langsamer läuft bzw. undendlich weiterläuft).
For i = 1 To 500
Range("C" & i).Copy
Range("D" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
If Range("C" & i) = Range("A1") Then Exit For
Next i
So würde die Schleife Sinn machen... mehr oder weniger.
Gruß
Till
|