Skip to content
Natuurondernemer
    Mai 6, 2020 by admin

    Gesamte Zeile in Excel mit VBA löschen (Beispiele)

    Gesamte Zeile in Excel mit VBA löschen (Beispiele)
    Mai 6, 2020 by admin

    Das Hinzufügen und Löschen von Zeilen gehört zu den alltäglichen Aufgaben bei der Arbeit mit Excel.

    Während Sie dies einfach über das Arbeitsblatt selbst erledigen können, möchten Sie manchmal den VBA-Weg nutzen, um Zeilen in Excel zu löschen. Dabei kann es sich um das Löschen einer bestimmten Zeile handeln, um mehrere Zeilen in der Auswahl, um das Löschen alternativer Zeilen oder um solche, die einen bestimmten Wert enthalten.

    In diesem Tutorial zeige ich Ihnen, wie Sie Zeilen in Excel mit VBA löschen können (mehrere Szenarien).

    Lassen Sie uns also loslegen!

    Dieses Tutorial deckt ab:

    Eine ganze Zeile mit VBA löschen

    Um eine ganze Zeile in Excel mit VBA zu löschen, müssen Sie die Methode EntireRow.Delete-Methode verwenden.

    Wenn Sie zum Beispiel die gesamte erste Zeile in einem Arbeitsblatt löschen möchten, können Sie den folgenden Code verwenden:

    Sub DeleteEntireRow()Rows(1).EntireRow.DeleteEnd Sub

    Der obige Code gibt zunächst die zu löschende Zeile an (was durch die Angabe der Nummer in Klammern geschieht) und verwendet dann die EntireRow.Delete-Methode, um sie zu löschen.

    Sie können auch mehrere Zeilen löschen, indem Sie diese Zeilen im Code angeben.

    Zum Beispiel löscht der folgende Code die Zeilen Nummer 1, 5 und 9 im Arbeitsblatt:

    Sub DeleteEntireRow()Rows(9).EntireRow.DeleteRows(5).EntireRow.DeleteRows(1).EntireRow.DeleteEnd Sub

    Der obige Code verwendet dieselbe Logik, wobei er die Zeilennummern angibt und Excel diese Zeilen nacheinander löscht.

    WICHTIG: Wenn Sie Zeilen mit etwas Ähnlichem wie dem obigen Code löschen, denken Sie daran, dass Sie mit dem Löschen von unten beginnen und dann nach oben gehen. Wenn Sie z. B. oben beginnen und zuerst Zeile 1 löschen, würden alle Zeilen darunter um eine Zeile nach oben verschoben werden und die Nummerierung wäre falsch (da Zeile 5 zu Zeile 4 werden würde usw.)

    Alle Zeilen in der Auswahl löschen

    Wenn Sie alle Zeilen in einem markierten Bereich von Zellen löschen möchten, können Sie den folgenden VBA-Makrocode verwenden:

    Sub DeleteEntireRow()Selection.EntireRow.DeleteEnd Sub

    Der obige Code wendet die Methode EntireRow.Delete-Methode auf die gesamte Auswahl an.

    Abwechselnde Zeilen löschen (oder jede dritte/vierte/nte Zeile löschen)

    Manchmal kann es vorkommen, dass Sie einen Daten-Dump erhalten, bei dem jede zweite Zeile (oder dritte, vierte oder n-te Zeile) nutzlos ist und gelöscht werden muss.

    Ich habe früher mit Finanzdaten gearbeitet, bei denen jede zweite Zeile leer war und gelöscht werden musste.

    Das ist die Art von Szenario, bei der VBA wirklich glänzt.

    Nachfolgend finden Sie den VBA-Code, der durch alle Zeilen in der Auswahl geht und jede zweite Zeile löscht:

    Sub DeleteAlternateRows()RCount = Selection.Rows.CountFor i = RCount To 1 Step -2 Selection.Rows(i).EntireRow.DeleteNext iEnd Sub

    Lassen Sie mich erklären, wie dieser VBA-Code funktioniert.

    Zuerst habe ich eine Variable RCount verwendet, um die Gesamtzahl der Zeilen in der Auswahl zu erhalten.

    Dann habe ich eine For Next-Schleife verwendet, um dies so oft auszuführen, wie viele Zeilen vorhanden sind. Wenn zum Beispiel 12 Zeilen vorhanden sind, wird diese Schleife von 12 bis 1 (also 12 Mal) durchlaufen. Es ist wichtig, dies von der letzten Zeile in der Auswahl bis zur ersten auszuführen, da wir nicht wollen, dass sich die Zeilennummern ändern, wenn eine Zeile gelöscht wird.

    Auch Schritt -2 wird verwendet, da wir jede zweite Zeile löschen müssen (von unten nach oben). Falls Sie jede dritte Zeile löschen wollen, können Sie -3 verwenden.

    Innerhalb der VBA-Schleife habe ich die Methode Selection.Rows(i).EntireRow.Delete verwendet, um jede zweite Zeile zu löschen.

    Leere Zeilen mit VBA löschen

    Sie können auch die Methode EntireRow.Delete-Methode verwenden, um alle leeren Zeilen zu löschen.

    Nachfolgend finden Sie den VBA-Code, der leere Zellen im ausgewählten Datensatz auswählt und die gesamte Zeile löscht.

    Sub DeleteBlankRows()Selection.SpecialCells(xlCellTypeBlanks).EntireRow.DeleteEnd Sub

    Der obige Code verwendet die Eigenschaft SpecialCells, um alle leeren Zellen auszuwählen und zu löschen. Dies ist die gleiche Methode, mit der wir auch das Dialogfeld „Gehe zu Spezial“ verwenden können, um alle leeren Zellen auszuwählen.

    Nachdem diese leeren Zellen mit SpecialCell identifiziert wurden, werden sie mit der Methode EntireRow.Delete gelöscht.

    Hinweis: Diese Methode wählt Zellen aus, die leer sind, und prüft nicht, ob die gesamte Zeile leer ist oder nicht. Wenn also irgendeine Zelle in einer Zeile leer ist, würde dies trotzdem die gesamte Zeile löschen.

    Zeilen mit einem bestimmten Wort/Wert löschen

    Sie können auch einen einfachen VBA-Code verwenden, um jede Zelle im ausgewählten Bereich durchzugehen und alle Zeilen zu löschen, in denen eine Zelle einen bestimmten Text oder Wert enthält.

    Angenommen, Sie haben einen Datensatz und ich möchte alle Zellen löschen, die in Spalte 2 der Auswahl den Text Drucker enthalten.

    Datensatz von wo aus ganze Zeile mit bestimmtem Wert löschen

    Unten ist der Code, der dies tut:

    Sub DeleteRowswithSpecificValue()For i = Selection.Rows.Count To 1 Step -1If Cells(i, 2).Value = "Printer" ThenCells(i, 2).EntireRow.DeleteEnd IfNext iEnd Sub

    Der obige Code zählt zunächst die Gesamtzahl der Zeilen in der Auswahl. Damit wird sichergestellt, dass die Schleife nur so oft durchlaufen wird. Dann wird die ‚For Next-Schleife‘ verwendet, um alle Zellen in Spalte 2 durchzugehen.

    Die IF THEN ELSE-Anweisung wird dann verwendet, um den Wert in jeder Zelle in Spalte 2 zu überprüfen. Und falls der Wert/Text mit dem angegebenen Text übereinstimmt (der in diesem Beispiel ‚Drucker‘ ist).

    In diesem Beispiel habe ich geprüft, ob der Text mit einer bestimmten Zeichenfolge übereinstimmt oder nicht. Sie können dies auch mit Werten tun. Sie können zum Beispiel alle Zeilen löschen, bei denen der Verkaufswert kleiner als 1000 oder größer als 1000 ist.

    Hinweis: Wichtig ist hier, dass die Schleife von Selection.Rows.Count bis 1 läuft, um sicherzustellen, dass das Löschen einer Zeile keine Auswirkungen auf die darüber liegenden Zeilen hat.

    Wie Sie diesen VBA-Code verwenden

    Nun möchte ich Ihnen zeigen, wie Sie alle in diesem Tutorial erwähnten Codes verwenden können, um die gesamte Zeile zu löschen.

    Sie müssen diese Codes kopieren und in ein Modul in Excel VB Editor einfügen. Sobald Sie diese Codes kopiert haben, können Sie die Makrocodes ausführen.

    Nachfolgend finden Sie die Schritte zum Kopieren und Einfügen dieser VBA-Codes in ein Modul:

    1. Halten Sie die ALT-Taste gedrückt und drücken Sie die Taste F11 (oder Funktion + Option + F11 bei Mac). Dadurch wird der VB-Editor geöffnet
    2. Im VB-Editor haben Sie links den Projekt-Explorer. Wenn Sie ihn nicht sehen, gehen Sie auf die Option Ansicht und klicken Sie auf Projekt-Explorer.Klicken Sie auf Projekt-Explorer
    3. Klicken Sie mit der rechten Maustaste auf ein beliebiges Objekt im Projekt-Explorer (für die Arbeitsmappe, in der Sie den Code ausführen möchten).Modul einfügen
    4. Gehen Sie auf Einfügen und klicken Sie dann auf Modul. Dadurch wird ein neues Modul für die Arbeitsmappe eingefügt.Kopieren und Einfügen, um ganze Zeilen im Modul zu löschen
    5. Kopieren und Einfügen der obigen Codes in das Modul.

    Und um diese Codes auszuführen, können Sie den Cursor an eine beliebige Stelle des Codes (den Sie ausführen möchten) setzen und die F5-Taste drücken (oder auf das grüne Dreieck in der VBA-Symbolleiste klicken).

    Ich habe auch ein detailliertes Tutorial über verschiedene Möglichkeiten, VBA-Makrocodes in Excel auszuführen, geschrieben.

    Für den Fall, dass Sie einen dieser Codes häufig verwenden müssen, können Sie auch in Erwägung ziehen, diese zur Persönlichen Makro-Arbeitsmappe und dann zum QAT hinzuzufügen. Auf diese Weise steht Ihnen der Code in jeder Ihrer Arbeitsmappen mit einem einzigen Klick zur Verfügung.

    So, das waren einige VBA-Codes, die Sie zum Löschen ganzer Zeilen in Excel (in verschiedenen Szenarien) verwenden können. Die gleiche Logik können Sie auch anwenden, wenn Sie Spalten statt Zeilen löschen möchten (mit der entsprechenden Anpassung in den Code-Beispielen).

    Hoffentlich fanden Sie dieses Tutorial nützlich!

    Die folgenden Excel-Tutorials könnten Ihnen auch gefallen:

    • Excel VBA Autofilter: Eine komplette Anleitung mit Beispielen
    • Zeilen auf Basis eines Zellwerts (oder einer Bedingung) in Excel löschen
    • Einfügen einer leeren Zeile nach jeder Zeile in Excel (oder jeder N-ten Zeile)
    • Schnelles Ausblenden von SPALTEN in Excel

    Previous articleTop 10 Wärmepumpenmarken von 2020 - Welche ist die beste Wärmepumpenmarke?Next article Cholesterin

    Schreibe einen Kommentar Antworten abbrechen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    Neueste Beiträge

    • Sich selbst (und andere…) in Jahrbüchern online finden
    • Wie man einen Bitcoin-ASIC-Miner einrichtet
    • Chris Martin feiert Geburtstag in Disneyland mit Dakota Johnson
    • Was ist ein Superfund-Standort?
    • Angelköder-Blutwürmer haben Bienenstiche
    • Echolalie: Die Fakten jenseits von „Papageiensprache“, Skripting und Echoing
    • Herr der Fliegen Zitate
    • A Beginner’s Guide to Pegging
    • 42 Healthy Crockpot Soup Recipes
    • 3 überraschende Risiken einer schlechten Körperhaltung

    Archive

    • April 2021
    • März 2021
    • Februar 2021
    • Januar 2021
    • Dezember 2020
    • November 2020
    • Oktober 2020
    • September 2020
    • August 2020
    • Juli 2020
    • Juni 2020
    • Mai 2020
    • April 2020
    • DeutschDeutsch
    • NederlandsNederlands
    • EspañolEspañol
    • FrançaisFrançais
    • PortuguêsPortuguês
    • ItalianoItaliano
    • PolskiPolski

    Meta

    • Anmelden
    • Feed der Einträge
    • Kommentare-Feed
    • WordPress.org
    Posterity WordPress Theme