VBA Infoga kolumner

Normalt har vi i Excel-kalkylblad två olika metoder för att lägga till eller infoga kolumner, en är kortkommandon och en annan genom att använda högerklicka och infoga-metoden men i VBA måste vi använda infoga kommando och hela kolumnuttryck för att lägga till en kolumn tillsammans knep för detta är att om vi behöver infoga en enda kolumn ger vi en enda kolumnreferens men för de flera kolumnerna ger vi flera kolumnreferenser.

Infoga kolumner i Excel med VBA

Som en del av VBA-koden kan vi behöva infoga några kolumner i vårt datablad för att passa våra behov. Att infoga kolumn är den snabba genvägstangenten i kalkylbladet genom att trycka på Ctrl + men vad sägs om att infoga en ny kolumn genom VBA-kod. I den här artikeln om ”VBA Insert Column” visar vi dig processen att lägga till kolumner i Excel och visar olika exempel på scenarier.

Hur infogar jag kolumner i Excel-kalkylblad med VBA?

Vi kan infoga kolumner i VBA med COLUMNS-egenskapen och RANGE-objektet. Du måste varför vi behöver kolumner och intervallobjekt för att infoga en ny kolumn.

För att infoga en ny kolumn måste vi identifiera efter vilken kolumn vi behöver infoga, utan att berätta efter vilken kolumn vi behöver infoga hur VBA kan förstå logiken.

Om du till exempel vill infoga kolumnen efter kolumn B kan du konstruera koden så här.

Kolumner (“C”)

Obs: Anledningen till att jag har använt C för att infoga en kolumn efter eftersom den valda cellen kommer att flyttas till höger sida.

När kolumnerna har specificerats måste vi komma åt egenskapen ”Hela kolumnen”.

Kolumner ("C"). Hela kolumnen

Då måste vi välja "Infoga" -metoden.

Kolumner (“C”). EntireColumn.Insert

Detta infogar kolumnen efter kolumn C och den befintliga kolumnen C flyttas till D.

Exempel nr 1 - Infoga kolumner med intervallobjekt i VBA

Titta nu på sättet att infoga kolumnen med RANGE-objektet. För detta överväga nedanstående data för ett exempel.

Nu vill jag VBA infoga kolumnen efter A-kolumnen, följ nedanstående steg för att konstruera koden.

Steg 1: Börja med underproceduren.

Steg 2: Öppna Range- objekt.

Koda:

 Sub ColumnInsert_Example1 () Range (End Sub 

Steg 3: Nämn nu kolumnen i dubbla citat .

Koda:

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

Steg 4: Välj nu hela kolumnegenskapen .

Koda:

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

Steg 5: När du har valt hela kolumnegenskapen väljer du metoden "Infoga" .

Koda:

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

Nu ser din kod ut så här.

Koda:

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

Kör koden för att infoga den nya B-kolumnen.

Exempel # 2 - Infoga flera kolumner

Om du till exempel vill infoga två nya kolumner efter kolumn A måste vi nämna två kolumnadresser.

Koda:

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

Ovanstående kod infogar två kolumner efter kolumn A.

Exempel # 3 - Med "Infoga" Endast metod

Vi kan infoga en ny kolumn genom att använda "Infoga" den enda metoden utan åtkomst till hela kolumnegenskapen. För detta ska vi förstå syntaxen för "infoga" -metoden.

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

[Skift]: När vi infogar den nya kolumnen, oavsett om vi behöver kolumnerna för att flytta till höger eller för att flytta till nackdelen i fall av rader. Här kan vi använda två alternativ “xlToRight” och “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 RANGE object, now we will show we can insert columns using “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 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