Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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

for each, überspringen vermeiden

for each, überspringen vermeiden
Marc
Guten Morgen zusammen.
In einer Liste von Zahlen sind unter aufeinanderfolgende Leerzeilen und Textzeilen enthalten. Diese will ich mit folgender Logik eliminieren.
lz = Cells(Rows.Count, "A").End(xlUp).Row
For Each cl In Range("A25:A" & lz)
If IsEmpty(cl) = True Or Not IsNumeric(cl) Then Rows(cl.Row).Delete
Next cl
Das Problem ist, das durch das Löschen eine Zeilenverschiebung entsteht, die bei der Routine nicht abgefangen wird. Es wird also nur (bei 4 Leer- bzw. Textzeilen) nur jede zweite Zeile gelöscht.
Bei "for 1 to 255" ist es möglich "STEP -1" dahinter zusetzen, um "hinten" anzufangen. Gibt das hier auch oder muß ich eine andere Lösung anstreben?
Danke schon mal fürs reindenken....
Gruß, Marc

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
warum benutzt Du dann nicht Step -1 ...
10.11.2011 08:30:48
Matthias
Hallo Marc
Sub marc()
Dim lz&, cl&
lz = Cells(Rows.Count, "A").End(xlUp).Row
MsgBox "letzte Zeile = " & lz, vbInformation
If lz > 25 Then
For cl = lz To 25 Step -1
If IsEmpty(Cells(cl, 1)) Or Not IsNumeric(Cells(cl, 1)) Then Rows(cl).Delete
Next
Else
MsgBox "keine Aktion"
End If
End Sub

https://www.herber.de/bbs/user/77428.xls
Gruß Matthias
das hatte ich schon gesehen ;o) kwT
10.11.2011 08:58:03
Matthias
If lz >= 25 Then          Gruß, o.w.T.
10.11.2011 08:51:36
Reinhard

Yes          :o) THX o.w.T.
10.11.2011 09:01:30
Matthias

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige