VBA Kolommen invoegen

Normaal gesproken hebben we in Excel-werkblad twee verschillende methoden om kolommen toe te voegen of in te voegen, de ene is de sneltoets en de andere door de rechtsklik- en invoermethode te gebruiken, maar in VBA moeten we de opdracht invoegen en de volledige kolominstructie gebruiken om elke kolom samen toe te voegen, de De truc hierbij is dat als we een enkele kolom moeten invoegen, we een enkele kolomreferentie geven, maar voor de meerdere kolommen geven we meerdere kolomreferenties.

Voeg kolommen in Excel in met behulp van VBA

Als onderdeel van de VBA-code moeten we mogelijk een paar kolommen in ons gegevensblad invoegen om aan onze behoeften te voldoen. Kolom invoegen is de gemakkelijke sneltoets in het werkblad door op Ctrl + te drukken, maar hoe zit het met het invoegen van een nieuwe kolom via VBA-code. In dit artikel over “VBA-kolom invoegen” laten we u zien hoe u kolommen toevoegt in Excel en laten we u verschillende scenario's zien.

Kolommen invoegen in Excel-werkblad met VBA?

We kunnen kolommen in VBA invoegen met de eigenschap COLUMNS en het RANGE-object. U moet waarom we kolommen en bereikobjecten nodig hebben om een ​​nieuwe kolom in te voegen.

Om een ​​nieuwe kolom in te voegen, moeten we identificeren na welke kolom we moeten invoegen, zonder te vertellen na welke kolom we moeten invoegen hoe VBA de logica kan begrijpen.

Als u bijvoorbeeld de kolom na kolom B wilt invoegen, kunt u de code als volgt construeren.

Kolommen ("C")

Opmerking: de reden waarom ik C heb gebruikt om een ​​kolom daarna in te voegen, omdat de geselecteerde cel naar de rechterkant wordt verschoven.

Nadat de kolommen zijn gespecificeerd, moeten we toegang krijgen tot de eigenschap "Gehele kolom".

Kolommen ("C") Gehele kolom

Dan moeten we de "Insert" -methode kiezen.

Kolommen ("C"). GeheleColumn.Invoegen

Hierdoor wordt de kolom ingevoegd na kolom C en wordt de bestaande kolom C verplaatst naar D.

Voorbeeld # 1 - Kolommen invoegen met bereikobject in VBA

Kijk nu naar de manier om de kolom in te voegen met behulp van het RANGE-object. Beschouw hiervoor de onderstaande gegevens als voorbeeld.

Nu wil ik VBA de kolom na de A-kolom invoegen, volg de onderstaande stappen om de code te construeren.

Stap 1: Start de subprocedure.

Stap 2: Open Range- object.

Code:

 Sub ColumnInsert_Example1 () Bereik (End Sub 

Stap 3: Noem de kolom nu tussen dubbele aanhalingstekens .

Code:

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

Stap 4: Kies nu Gehele kolomeigenschap .

Code:

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

Stap 5: Nadat u de eigenschap Gehele kolom hebt geselecteerd, kiest u de "Invoegen" -methode.

Code:

 Sub ColumnInsert_Example1 () Bereik ("B: B"). GeheleColumn.ins End Sub 

Nu ziet uw code er zo uit.

Code:

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

Voer de code uit, het zal de nieuwe B-kolom invoegen.

Voorbeeld # 2 - Meerdere kolommen invoegen

Als u bijvoorbeeld twee nieuwe kolommen na kolom A wilt invoegen, moeten we twee kolomadressen vermelden.

Code:

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

De bovenstaande code voegt twee kolommen in na kolom A.

Voorbeeld # 3 - Met alleen de methode "Invoegen"

We kunnen een nieuwe kolom invoegen door de enige methode "Invoegen" te gebruiken zonder de eigenschap Gehele kolom te openen. Laten we hiervoor de syntaxis van de "insert" -methode begrijpen.

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

[Shift]: als we de nieuwe kolom invoegen, of we de kolommen nodig hebben om naar rechts te verschuiven of naar beneden in het geval van rijen. Hier kunnen we twee opties "xlToRight" en "xlDownTo" gebruiken

[Copy Origin]: Dit specificeert het formaat voor de nieuw ingevoegde kolom. Of u het formaat van de linkerkant van de kolom of van de bovenstaande cellen nodig heeft. Hier kunnen we twee opties gebruiken "xlFormatFromLeftOrAbove" en "xlFormatFromRightOrBelow".

Hieronder ziet u de voorbeeldcode voor u.

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

Voorbeeld # 4 - Kolommen invoegen met de eigenschap COLUMNS in VBA

We hebben gezien hoe VBA kolommen invoegen met behulp van RANGE-object, nu zullen we laten zien dat we kolommen kunnen invoegen met behulp van de "COLUMNS" -eigenschap.

Open de eigenschap COLUMNS.

Code:

 Sub ColumnInsert_Example2 () Kolommen (End Sub 

We kunnen de kolom hier op twee manieren specificeren. De ene gebruikt zoals gewoonlijk alfabetische verwijzingen en de andere gebruikt kolomnummers.

Als u de kolom na de kolom A wilt invoegen, is de code KOLOMMEN ("B"). Als u numerieke referentie gebruikt, is de code KOLOMMEN (2).

Code:

Sub ColumnInsert_Example2 () Kolommen ("B"). Einde Sub

Nu doet zich het probleem voor, want wanneer we de eigenschap COLUMNS gebruiken, krijgen we geen toegang tot de IntelliSense-lijst.

Code:

 Sub ColumnInsert_Example2 () Kolommen ("B") Entir End Sub 

Hier moeten we zeker zijn van wat we doen. Dit is dus de reden dat ik je eerst het RANGE-object heb laten zien.

Code:

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

Voorbeeld # 5 - Alternatieve kolommen invoegen

Stel dat u de gegevens heeft zoals de onderstaande afbeelding.

Als u na elke alternatieve rij nieuwe kolommen wilt invoegen, moeten we VBA-loops gebruiken. Codeer hieronder de code die op maat voor u is gemaakt.

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