VBA-Spalten einfügen - Wie füge ich eine Spalte in ein Excel-Arbeitsblatt mit VBA ein?

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, aber für die mehreren Spalten mehrere Spaltenreferenzen angeben.

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. Es wird die neue B-Spalte eingefü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))

(Umschalttaste): Wenn wir die neue Spalte einfügen, geben Sie an, ob die Spalten nach rechts oder bei Zeilen nach unten verschoben werden sollen. Hier können wir zwei Optionen verwenden, "xlToRight" und "xlDownTo".

(Copy Origin): This will specify the format for the newly inserted column. Whether you need the format from the left side of the column or from the above cells. Here we can use two options “xlFormatFromLeftOrAbove” and “xlFormatFromRightOrBelow”.

Below is the example code for you.

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

Example #4 - Insert Columns Using COLUMNS Property in VBA

We have seen how to VBA insert columns using the RANGE object; now, we will show we can insert columns using the “COLUMNS” property.

Open the COLUMNS property.

Code:

Sub ColumnInsert_Example2() Columns( End Sub

We can specify the column in two ways here. One is using as usual alphabetic references, and another one is using column numbers.

If you want to insert the column after 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 the 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. The below code it tailor-made the code for you.

Code:

Sub ColumnInsert_Example3 () Dim k As Integer Columns (2). Wählen Sie für k = 2 bis 8 ActiveCell.EntireColumn.Insert ActiveCell.Offset (0, 2). Wählen Sie Next k End Sub

Dadurch wird die Spalte wie folgt eingefügt.

Beispiel 6 - Einfügen einer Spalte basierend auf dem Zellenwert

Wir können auch eine Spalte basierend auf dem Zellenwert einfügen. Schauen Sie sich zum Beispiel die folgenden Daten an.

Hier möchte ich die Spalte einfügen, wenn der Zellenwert in der ersten Zeile "Jahr" ist, und meine Daten sollten dies nach dem Einfügen neuer Spalten mögen.

Verwenden Sie den folgenden Code, um diese Aufgabe auszuführen.

Code:

Sub ColumnInsert_Example4 () Dim k als Ganzzahl Dim x als Ganzzahl x = 2 Für k = 2 bis 12 Wenn Zellen (1, x) .Value = "Year", dann Zellen (1, x) .EntireColumn.Insert x = x + 1 Ende Wenn x = x + 1 Weiter k Ende Sub

Sie können dieses VBA Insert Columns Excel hier herunterladen. Excel-Vorlage für VBA-Spalten einfügen

Interessante Beiträge...