Kris hat ein Arbeitsblatt, in dem die Daten eine große Anzahl leerer Zeilen enthalten. Er sucht nach einem einfachen Makro, das alle Zeilen löscht, die völlig leer sind.

Es gibt verschiedene Möglichkeiten, um diese Aufgabe zu erfüllen. In den folgenden Abschnitten werden die verschiedenen Ideen zur Beseitigung dieser problematischen Zeilen untersucht.

Auswahl von Leerzeichen

Eine schnelle Möglichkeit, um zu überprüfen, wo sich Leerzeichen befinden, besteht darin, nur Leerzeichen in Ihren Daten auszuwählen. Befolgen Sie diese Schritte:

  1. Wählen Sie alle Daten aus, mit denen Sie arbeiten.

  2. Drücken Sie F5. Excel zeigt das Dialogfeld Gehe zu an.

  3. Klicken Sie auf Spezial. Excel zeigt das Dialogfeld Gehe zu Spezial an. (Siehe Abbildung 1.)

  4. Aktivieren Sie das Optionsfeld Leerzeichen.

  5. OK klicken. Excel wählt diese Zellen in Ihrem Startbereich aus (Schritt 1) ​​

das sind leer.

  1. Zeigen Sie die Registerkarte Home des Menübands an.

  2. Klicken Sie auf das Werkzeug Löschen. Excel löscht die Zeilen.

Dieser Ansatz weist eine große Einschränkung auf: Er löscht alle Zeilen, in denen eine Zelle leer ist. Mit anderen Worten, dieser Ansatz ist am besten geeignet, wenn sich die einzigen Leerzeichen in Ihren Daten in Zeilen befinden, die Sie tatsächlich löschen möchten.

Wenn einige leere Zellen zwischen den Daten liegen, die Sie wirklich behalten möchten, verwenden Sie diese Methode nicht, da dadurch auch diese Zeilen gelöscht werden.

Sortierung

Wenn Ihre Daten nicht aus sehr vielen Zeilen bestehen (z. B. nur zehn Spalten oder weniger), sollten Sie möglicherweise nur die Daten sortieren. Wenn Sie jede Spalte in Ihre Sortierspezifikation aufnehmen, werden die leeren Zeilen direkt nebeneinander angezeigt und Sie können sie problemlos löschen.

Wenn Ihre Daten viele Spalten enthalten und es Ihnen nichts ausmacht, eine Hilfsspalte hinzuzufügen, können Sie leere Zeilen in einer Variation der Sortiermethode entfernen. Angenommen, Ihre Daten befinden sich in den Spalten A bis P. Geben Sie in Spalte Q eine der folgenden Formeln ein:

=COUNTA(A1:P1)

=IF(COUNTBLANK(A1:P1)=16,"DELETE","")

Es spielt keine Rolle, welche Sie verwenden; Beide geben Ihnen Informationen, mit denen Sie arbeiten können. Bei der COUNTA-Formel müssen Sie lediglich nach Spalte Q sortieren und alles mit einer 0 in dieser Spalte löschen.

Im Fall der COUNTBLANK-Formel möchten Sie den gleichgestellten Wert (16) in die Anzahl der Spalten ändern, die die COUNTBLANK-Funktion berücksichtigt. (In diesem Fall ist 16 die Anzahl der Spalten im Bereich A: P einschließlich.) Nachdem die Formel vorhanden ist, können Sie nach Spalte Q sortieren und dann einfach alle Zeilen löschen, die das Wort „DELETE“ in dieser Spalte enthalten .

Eine weitere Variante des Sortieransatzes besteht darin, einfach die Filterfunktionen von Excel zu verwenden, um Ihre Liste so zu filtern, dass nur Leerzeichen in einer der Datenspalten enthalten sind. (Sie können beispielsweise in Spalte A nach Leerzeichen filtern.) Anschließend können Sie die verbleibenden Spalten so sortieren, dass sich ganze leere Zeilen an einer Stelle befinden, und diese Zeilen dann löschen.

Macros

Wenn Sie häufig leere Zeilen löschen müssen, sollten Sie ernsthaft in Betracht ziehen, ein Makro zu verwenden, um die harte Arbeit zu erledigen. Ihr Makro kann einfach zum Menüband hinzugefügt oder einer Tastenkombination zugewiesen werden, sodass Sie es sehr einfach aufrufen können.

In diesem Tipp habe ich bereits erwähnt, dass Sie bei Bedarf im Dialogfeld Gehe zu Spezial leere Zellen im Bereich Ihrer Daten auswählen und dann die Zeilen löschen können, in denen diese leeren Zellen vorkommen. Sie können dasselbe in einem sehr einfachen Makro tun:

Sub DeleteBlanks()

Dim R As Range

Set R = Range("A1:" & ActiveCell.SpecialCells(xlLastCell).Address)

R.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub

Beachten Sie jedoch, dass dieses Makro alle Zeilen löscht, in denen Leerzeichen vorhanden sind, auch wenn Sie andere Daten in dieser Zeile behalten möchten.

Ein besserer Ansatz wäre eine umfassendere Überprüfung jeder Zeile im Arbeitsblatt:

Sub DeleteBlankRows()

Dim lRows As Long     Dim J As Long

lRows = ActiveCell.SpecialCells(xlLastCell).Row     Application.ScreenUpdating = False     For J = lRows To 1 Step -1         If WorksheetFunction.CountA(Rows(J)) = 0 Then Rows(J).Delete     Next J     Application.ScreenUpdating = True End Sub

Beachten Sie, dass das Makro die zuletzt in der Arbeitsmappe verwendete Zelle ermittelt und den Wert lRows gleich der Zeile setzt, in der diese Zelle vorkommt. Eine For …​ Next-Schleife durchläuft dann jede Zeile (von der letzten zur ersten)

und verwendet die COUNTA-Funktion, um festzustellen, ob sich in dieser Zeile etwas befindet. Wenn nicht, wird die Zeile gelöscht.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (254) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.