VBA-Spalten einfügen

Normalerweise haben wir im Excel-Arbeitsblatt zwei verschiedene Methoden zum Hinzufügen oder Einfügen von Spalten, eine als Tastenkombination und eine andere mit der Rechtsklick- und Einfügemethode. In VBA müssen wir jedoch den Befehl insert und die gesamte Spaltenanweisung verwenden, um eine Spalte zusammenzufügen Der Trick dabei ist, dass wir, wenn wir eine einzelne Spalte einfügen müssen, eine einzelne Spaltenreferenz angeben, für die mehreren Spalten jedoch mehrere Spaltenreferenzen.

Einfügen von Spalten in Excel mit VBA

Als Teil des VBA-Codes müssen wir möglicherweise einige Spalten in unser Datenblatt einfügen, um unseren Anforderungen zu entsprechen. Das Einfügen einer Spalte ist die einfache Tastenkombination im Arbeitsblatt, indem Sie Strg + drücken. Wie wäre es jedoch mit dem Einfügen einer neuen Spalte über VBA-Code? In diesem Artikel zu „VBA-Spalte einfügen“ zeigen wir Ihnen den Prozess des Hinzufügens von Spalten in Excel und zeigen Ihnen verschiedene Szenarienbeispiele.

Wie füge ich mit VBA Spalten in ein Excel-Arbeitsblatt ein?

Wir können Spalten in VBA mithilfe der COLUMNS-Eigenschaft und des RANGE-Objekts einfügen. Sie müssen wissen, warum wir Spalten und Bereichsobjekte benötigen, um eine neue Spalte einzufügen.

Um eine neue Spalte einzufügen, müssen wir identifizieren, nach welcher Spalte wir einfügen müssen, ohne zu sagen, nach welcher Spalte wir einfügen müssen, wie VBA die Logik verstehen kann.

Wenn Sie beispielsweise die Spalte nach Spalte B einfügen möchten, können Sie den Code wie folgt erstellen.

Spalten ("C")

Hinweis: Der Grund, warum ich C verwendet habe, um eine Spalte danach einzufügen, weil die ausgewählte Zelle nach rechts verschoben wird.

Nachdem die Spalten angegeben wurden, müssen wir auf die Eigenschaft "Gesamte Spalte" zugreifen.

Spalten ("C"). EntireColumn

Dann müssen wir die Einfügemethode wählen.

Spalten ("C"). EntireColumn.Insert

Dadurch wird die Spalte nach Spalte C eingefügt und die vorhandene Spalte C wird nach D verschoben.

Beispiel 1 - Einfügen von Spalten mithilfe des Bereichsobjekts in VBA

Schauen Sie sich nun an, wie Sie die Spalte mit dem RANGE-Objekt einfügen. Betrachten Sie dazu die folgenden Daten als Beispiel.

Jetzt möchte ich die Spalte nach der A-Spalte VBA einfügen. Befolgen Sie die folgenden Schritte, um den Code zu erstellen.

Schritt 1: Starten Sie die Unterprozedur.

Schritt 2: Öffnen Sie das Range- Objekt.

Code:

 Sub ColumnInsert_Example1 () Range (End Sub 

Schritt 3: Erwähnen Sie nun die Spalte in doppelten Anführungszeichen .

Code:

 Sub ColumnInsert_Example1 () Range ("B: B") End Sub 

Schritt 4: Wählen Sie nun die Eigenschaft Gesamte Spalte .

Code:

 Sub ColumnInsert_Example1 () Range ("B: B"). Ent End Sub 

Schritt 5: Nachdem Sie die Eigenschaft Gesamte Spalte ausgewählt haben, wählen Sie die Methode „Einfügen“ .

Code:

 Sub ColumnInsert_Example1 () Range ("B: B"). EntireColumn.ins End Sub 

Jetzt sieht Ihr Code so aus.

Code:

 Sub ColumnInsert_Example1 () Range ("B: B"). EntireColumn.Insert End Sub 

Führen Sie den Code aus, der die neue B-Spalte einfügt.

Beispiel 2 - Einfügen mehrerer Spalten

Wenn Sie beispielsweise zwei neue Spalten nach Spalte A einfügen möchten, müssen Sie zwei Spaltenadressen angeben.

Code:

 Sub ColumnInsert_Example1 () Range ("B: C"). EntireColumn.Insert End Sub 

Der obige Code fügt zwei Spalten nach Spalte A ein.

Beispiel 3 - Nur mit der Methode "Einfügen"

Wir können eine neue Spalte einfügen, indem wir die einzige Methode "Einfügen" verwenden, ohne auf die Eigenschaft "Gesamte Spalte" zuzugreifen. Lassen Sie uns dazu die Syntax der Einfügemethode verstehen.

Expression.Insert ([Shift], [Origin kopieren])

[Umschalt]: Wenn wir die neue Spalte einfügen, müssen die Spalten nach rechts oder bei Zeilen nach unten verschoben werden. Hier können wir zwei Optionen verwenden: "xlToRight" und "xlDownTo".

[Ursprung kopieren]: Hiermit wird das Format für die neu eingefügte Spalte festgelegt. Ob Sie das Format von der linken Seite der Spalte oder von den obigen Zellen benötigen. Hier können wir zwei Optionen verwenden: "xlFormatFromLeftOrAbove" und "xlFormatFromRightOrBelow".

Unten finden Sie den Beispielcode für Sie.

 Sub ColumnInsert_Example1 () Range ("B: B"). Shift einfügen: = xlToRight, Copyorigin: = xlFormatFromLeftOrAbove End Sub 

Beispiel 4 - Einfügen von Spalten mithilfe der COLUMNS-Eigenschaft in VBA

Wir haben gesehen, wie VBA-Spalten mit dem RANGE-Objekt eingefügt werden. Jetzt zeigen wir, dass wir Spalten mit der Eigenschaft "COLUMNS" einfügen können.

Öffnen Sie die COLUMNS-Eigenschaft.

Code:

 Sub ColumnInsert_Example2 () Columns (End Sub 

Wir können die Spalte hier auf zwei Arten angeben. Einer verwendet wie üblich alphabetische Referenzen und ein anderer verwendet Spaltennummern.

If you want to insert the column after the column A then the code will be COLUMNS(“B”). If you are using numerical reference then the code will be COLUMNS(2).

Code:

 Sub ColumnInsert_Example2() Columns("B"). End Sub 

Now the problem for you arises because when we use COLUMNS property we don’t get to access to IntelliSense list.

Code:

 Sub ColumnInsert_Example2() Columns("B").Entir End Sub 

Here we need to sure of what we are doing. So this is the reason I have showed you the RANGE object first.

Code:

 Sub ColumnInsert_Example2() Columns("B:B").EntireColumn.Insert End Sub 

Example #5 – Insert Alternative Columns

Assume you have the data like the below image.

If you want to insert new columns after every alternate row, then we need to use VBA loops. Below code it the tailor-made the code for you.

Code:

 Sub ColumnInsert_Example3() Dim k As Integer Columns(2).Select For k = 2 To 8 ActiveCell.EntireColumn.Insert ActiveCell.Offset(0, 2).Select Next k End Sub 

This will insert the column like this.

Example #6 – Insert Column Based on Cell Value

We can also insert a column based on cell value as well. For example, look at the below data.

Here I want to insert the column if the first-row cell value is “Year” and my data should like this after inserting new columns.

Use the below code to perform this task.

Code:

 Sub ColumnInsert_Example4() Dim k As Integer Dim x As Integer x = 2 For k = 2 To 12 If Cells(1, x).Value = "Year" Then Cells(1, x).EntireColumn.Insert x = x + 1 End If x = x + 1 Next k End Sub 

You can download this VBA Insert Columns Excel here. VBA Insert Columns Excel Template