Startseite
» MS OFFICE
»
Wie man mit VBA Zeilen in Excel einfügt: 3 zuverlässige Methoden
Wie man mit VBA Zeilen in Excel einfügt: 3 zuverlässige Methoden
Um in Excel mit VBA Zeilen einzufügen, verwenden Sie die Insertentsprechende Methode in einer Tabellenblattzeile. Die drei folgenden Beispiele zeigen das Hinzufügen einer oder mehrerer leerer Zeilen, das Einfügen einer Kopie einer vorhandenen Zeile und das Erstellen einer leeren Zeile ohne übernommene Formatierung. Jedes Makro zielt auf ein Tabellenblatt mit dem Namen „<Tabellenblattname>“ ab Data; ersetzen Sie diesen Namen durch den genauen Tabellenblattnamen in Ihrer Arbeitsmappe.
Schritt 1: Arbeitsmappe vorbereiten und VBA-Editor öffnen
Verwenden Sie die Desktop-Version von Excel. Excel für das Web kann zwar Arbeitsmappen mit Makros öffnen, aber keine VBA-Makros erstellen, bearbeiten oder ausführen. Wenn Ihre Arbeitsmappe wichtige Daten enthält, erstellen Sie vor der Codeausführung eine Sicherungskopie, da beim Einfügen von Zeilen die Zeilen unterhalb der Einfügemarke verschoben werden.
Unter Windows öffnen Sie den Visual Basic Editor (VBE) mit Alt+F11 . Alternativ können Sie „Entwicklertools“ > „Visual Basic“ auswählen . Im VBE wählen Sie „Einfügen“ > „Modul“ und fügen dann ein Makro in das leere Modul ein. Die Anleitung von Microsoft beschreibt denselben Arbeitsablauf.
Öffnen Sie ein Standard-VBA-Modul im Visual Basic Editor, um das Makro hinzuzufügen.
Schritt 2: Wählen Sie eine der drei Zeileneinfügemethoden.
Methode 1: Einfügen einer oder mehrerer leerer Zeilen
Dieses Makro fügt eine komplette Zeile oberhalb der aktuellen Zeile 4 ein. Das Shift:=xlDownArgument weist Excel an, die vorhandenen Zellen nach unten zu verschieben, um Platz zu schaffen. Die Referenz zu Range.Insert beschreibt die Verschiebungs- und Formatierungsoptionen.
Sub InsertOneRow()
ThisWorkbook.Worksheets("Data").Rows(4).Insert Shift:=xlDown
End Sub
Um zwei Zeilen ab Zeile 3 einzufügen, verwenden Sie stattdessen einen Zeilenbereich:
Sub InsertTwoRows()
ThisWorkbook.Worksheets("Data").Rows("3:4").Insert Shift:=xlDown
End Sub
Die Zeilen 3 und 4 werden eingefügt, die vorhandenen Zeilen werden nach unten verschoben. Ändern Sie die Zeilennummern, um den Beginn der neuen Zeilen und deren Anzahl festzulegen. Der ThisWorkbookVerweis bedeutet, dass das Makro in der zu ändernden Arbeitsmappe gespeichert werden muss.
Durch das Einfügen der Zeilen 3 und 4 entsteht eine Lücke von zwei Zeilen, und die vorhandenen Datensätze werden nach unten verschoben.
Methode 2: Einfügen einer Kopie einer vorhandenen Zeile
Verwenden Sie diese Variante, wenn die neue Zeile die Werte, Formeln und Formatierungen einer vorhandenen Zeile übernehmen soll. Zuerst wird in Zeile 6 Platz geschaffen, dann wird Zeile 2 in diesen neuen Bereich kopiert. Die ursprüngliche Zeile 2 bleibt an ihrer Position. Microsoft dokumentiert das optionale Zielargument in der Referenz zu Range.Copy .
Sub InsertCopyOfRow()
With ThisWorkbook.Worksheets("Data")
.Rows(6).Insert Shift:=xlDown
.Rows(2).Copy Destination:=.Rows(6)
End With
End Sub
Ersetzen Sie 2`<Zeilennummer>` durch die Quellzeilennummer und `<Zeilennummer>` 6durch die Zeile, in der das Duplikat erscheinen soll. Da die gesamte Zeile kopiert wird, überprüfen Sie Formeln und Verweise in der eingefügten Kopie, bevor Sie sich darauf verlassen.
Die kopierte Alpha-Zeile erscheint in Zeile 6; die Quellzeile bleibt in Zeile 2.
Methode 3: Einfügen einer Zeile ohne kopierte Formatierung
Excel übernimmt möglicherweise Formatierungen aus einer benachbarten Zeile in eine eingefügte Zeile. Fügen Sie die Zeile ein und rufen Sie ClearFormatssie anschließend auf, um diese Formatierung zu entfernen:
Sub InsertUnformattedRow()
With ThisWorkbook.Worksheets("Data")
.Rows(3).Insert Shift:=xlDown
.Rows(3).ClearFormats
End With
End Sub
ClearFormats entfernt die geerbte Zellformatierung aus der eingefügten Zeile.
Schritt 3: Führen Sie das Makro aus und überprüfen Sie das Ergebnis.
Kehren Sie zum VBA-Editor zurück, platzieren Sie den Cursor an einer beliebigen Stelle innerhalb der auszuführenden Prozedur und drücken Sie F5 . Alternativ können Sie zu Excel zurückkehren und über „Entwicklertools“ > „Makros“ den Makronamen auswählen und „Ausführen“ klicken. Weitere Informationen zu den verfügbaren Optionen finden Sie in der Microsoft-Anleitung zum Ausführen von Makros in Excel .
Prüfen Sie vor dem Speichern, ob die erwarteten Zeilen im gewünschten Arbeitsblatt eingefügt wurden. Wenn Sie den VBA-Code in der Arbeitsmappe behalten möchten, speichern Sie diese als Excel-Arbeitsmappe mit Makros (.xlsm) . Beim Speichern als normale .xlsxDatei bleiben die VBA-Makros nicht erhalten. Microsoft erläutert dies in seinen Anweisungen zum Speichern von Makros . Führen Sie Makros nur aus vertrauenswürdigen Quellen aus und beachten Sie die Makro-Sicherheitsrichtlinien Ihrer Organisation.
Häufige Probleme
„Index außerhalb des gültigen Bereichs“: Der Tabellenblattname im Code stimmt nicht exakt mit dem Tabellenblattnamen überein. Aktualisieren Sie "Data"den Tabellenblattnamen, einschließlich Leerzeichen, falls vorhanden.
Die Zeilen werden in der falschen Arbeitsmappe angezeigt: Der Code verwendet ThisWorkbook, was auf die Datei verweist, die das Makro enthält. Speichern Sie das Modul in der Arbeitsmappe, die Sie bearbeiten möchten.
Im Browser funktioniert nichts: Öffnen Sie die Datei in der Desktop-Version von Excel. VBA-Makros können in Excel für das Web nicht ausgeführt werden. Weitere Informationen finden Sie in der VBA-Dokumentation von Microsoft für Excel für das Web .
Diese Beispiele fügen ganze Tabellenzeilen ein. Wenn es sich bei den Daten um eine Excel-Tabelle handelt und Sie einen Tabelleneintrag hinzufügen möchten, verwenden Sie die ListRows.Addentsprechende Methode der Tabelle , damit der neue Eintrag zur Tabelle gehört.