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