Rückkehr in VBA-Code-Beispiele

VBA – Zeile oder Spalte einfügen

In diesem Tutorial wird gezeigt, wie Sie mit VBA Zeilen und Spalten in Excel einfügen können. Zum Einfügen von Zeilen oder Spalten wird die Insert-Methode verwendet.

Einfügen einer einzelnen Zeile oder Spalte

Neue Zeile einfügen

Um eine einzelne Zeile einzufügen, können Sie das Rows-Objekt verwenden:

Rows(4).Insert

Oder Sie können das Range-Objekt zusammen mit EntireRow verwenden:

Range("b4").EntireRow.Insert

Neue Spalte einfügen

Ähnlich wie beim Einfügen von Zeilen können wir das Columns-Objekt verwenden, um eine Spalte einzufügen:

Columns(4).Insert

Oder das Range-Objekt, zusammen mit EntireColumn:

Range("b4").EntireColumn.Insert

Mehrere Zeilen oder Spalten einfügen

Mehrere Zeilen einfügen

Wenn Sie mehrere Zeilen mit dem Rows-Objekt einfügen, müssen Sie die Zeilen in Anführungszeichen eingeben:

Rows("4:6").Insert

Das Einfügen mehrerer Zeilen mit dem Range-Objekt funktioniert genauso wie das Einfügen einer einzelnen Zeile:

Range("b4:b6").EntireRow.Insert

Mehrere Spalten einfügen

Wenn Sie mehrere Spalten mit dem Columns-Objekt einfügen, geben Sie die Spaltenbuchstaben in Anführungszeichen ein:

Columns("B:D").Insert

Das Einfügen mehrerer Spalten mit dem Range-Objekt funktioniert genauso wie das Einfügen einer einzelnen Spalte:

Range("b4:d4").EntireColumn.Insert

Insert – Shift & CopyOrigin

Die Methode Insert hat zwei optionale Argumente:

  • Shift – In welche Richtung sollen die Zellen verschoben werden?
  • CopyOrigin – Welche Zellformatierung kopiert werden soll (oben, unten, links oder rechts)

Das Argument Shift ist beim Einfügen ganzer Zeilen oder Spalten irrelevant. Es erlaubt Ihnen nur anzugeben, ob Sie nach unten oder nach rechts verschieben wollen:

  • xlShiftDown – Zellen nach unten verschieben
  • xlShiftToRight – Zellen nach rechts verschieben

Wie Sie sehen können, können Sie nicht nach oben oder rechts verschieben. Das Argument CopyOrigin hat zwei mögliche Eingaben:

  • xlFormatFromLeftorAbove – (0) Neu eingefügte Zellen übernehmen die Formatierung von Zellen oberhalb oder links
  • xlFormatFromRightorBelow (1) Neu eingefügte Zellen erhalten die Formatierung von Zellen unterhalb oder rechts.

Schauen wir uns einige Beispiele für das Argument CopyOrigin an. Hier sind unsere Ausgangsdaten:

vba zeilen einfuegen

In diesem Beispiel wird eine Zeile eingefügt, wobei die Formatierung aus der obigen Zeile übernommen wird.

Rows(5).Insert , xlFormatFromLeftOrAbove

vba zeilen oben einfuegen

In diesem Beispiel wird eine Zeile eingefügt, wobei die Formatierung aus der unteren Zeile übernommen wird.

Rows(5).Insert , xlFormatFromRightOrBelow

vba zeilen unten einfuegen

Andere Insert-Beispiele

Kopierte Zeilen oder Spalten einfügen

Wenn Sie eine kopierte Zeile einfügen möchten, würden Sie folgenden Code verwenden:

Range("1:1").Copy
Range("5:5").Insert

Hier kopieren wir Zeile 1 und fügen sie in Zeile 5 ein.

Zeilen auf der Basis von Zellenwerten einfügen

Damit wird ein Bereich in einer Schleife durchlaufen, wobei Zeilen auf der Basis von Zellenwerten eingefügt werden:

Sub ZeilenMitBestimmtenWertenEinfuegen()
 
Dim Zelle As Range
 
For Each Zelle In Range("b2:b20")
    If Zelle.Value = "Einfügen" Then
        Zelle.EntireRow.Insert
    End If
Next Zelle
 
End Sub

Zeilen oder Spalten löschen

Um Zeilen oder Spalten zu löschen, verwenden Sie einfach die Methode Delete.

Rows(1).Delete

Range("a1").EntireRow.Delete

Columns(1).Delete

Range("a1").EntireColumn.Delete