VBA – Zeile oder Spalte einfügen
In this Article
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:
In diesem Beispiel wird eine Zeile eingefügt, wobei die Formatierung aus der obigen Zeile übernommen wird.
Rows(5).Insert , xlFormatFromLeftOrAbove
In diesem Beispiel wird eine Zeile eingefügt, wobei die Formatierung aus der unteren Zeile übernommen wird.
Rows(5).Insert , xlFormatFromRightOrBelow
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