Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Leerzeilen im Zeilenbereich von 2 bis 5000 löschen

Forumthread: Leerzeilen im Zeilenbereich von 2 bis 5000 löschen

Leerzeilen im Zeilenbereich von 2 bis 5000 löschen
19.02.2025 22:31:13
Tobi_84
Hallo zusammen,

gibt es eine Möglichkeit meinen Code deutlich zu beschleunigen?
Ich versuche sehr viele Leerzeilen zwischen meinen Daten zu löschen.
Leere Zellen sind über die Spalten A:D verteilt, es sollen aber nur die komplett leeren Zeilen gelöscht werden.
Das Zeilenmaximum liegt bei Reihe 5000.
Sub Delete_Rows()

'
' Delete_Rows Makro
'
Dim intRow As Integer
Dim intLastRow As Integer

' With Worksheets("Druck")

' leere Zellen löschen
intLastRow = Cells.SpecialCells(xlCellTypeLastCell).Row
For intRow = intLastRow To 1 Step -1
If Application.CountA(Rows(intRow)) = 0 Then
Rows(intRow).Delete
End If
Next intRow
End Sub

Gruß Tobias

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Leerzeilen im Zeilenbereich von 2 bis 5000 löschen
19.02.2025 22:39:38
Onur
Mache eine Hilfsspalte mit der Formel
=WENN(TEXTKETTE(A1:D1)="";"X";"")
und filtere nach "X" und lösche diese Zeilen.
Guckst du hier:
https://www.herber.de/bbs/user/175795.xlsx
AW: Leerzeilen im Zeilenbereich von 2 bis 5000 löschen
20.02.2025 13:18:34
daniel
Hi
Mit am schnellsten sollte das sein:
With Activesheet.Usedrange

With .Colums(.Columns.Count + 1)
.FormulaR1C1 = "=If(CountA(RC1:RC4)=0;0;Row())"
.Cells(1, 1).value = 0
.entirerow.removeduplicates .column, xlno
.clearcontents
End with
End with


Kann man übrigens auch von Hand machen, ohne ein Makro schreiben zu müssen.

Gruß Daniel
Anzeige
AW: Leerzeilen im Zeilenbereich von 2 bis 5000 löschen
20.02.2025 08:04:06
MCO
Hallo Tobi!

Alles einzeln durchzugehen ist mit Bildschirmaktualisierung echt zeitraubend.
Daher kannst du besser mit Bereichen arbeiten, die du vorher mit Leben füllst und dann in einem Schritt löschst.

In der Umsetzung sieht es so aus:

Sub Delete_Rows()

' Delete_Rows Makro
'
Dim intRow As Integer
Dim intLastRow As Integer
Dim rws As Range

intLastRow = Cells.SpecialCells(xlCellTypeLastCell).Row 'letzte Zeile
Set rws = Rows(intLastRow + 1) 'Range vorbelegen

For intRow = intLastRow To 1 Step -1
If Application.CountA(Rows(intRow)) = 0 Then Set rws = Union(rws, Rows(intRow)) 'Bereichdefinition erweitern
Next intRow

rws.Delete ' Bereich löschen
End Sub


Gruß, MCO
Anzeige
AW: Leerzeilen im Zeilenbereich von 2 bis 5000 löschen
20.02.2025 19:05:29
Tobi_84
Hallo zusammen,

Dankeschön für eure Unterstützung.

Gruß Tobias

Forumthreads zu verwandten Themen

Anzeige