VBA Sett inn kolonner - Hvordan setter du inn kolonne i Excel-regneark med VBA?

Normalt i Excel-regneark har vi to forskjellige metoder for å legge til eller sette inn kolonner, den ene er hurtigtasten, og en annen ved å bruke høyreklikk og sett inn metoden, men i VBA må vi bruke insert-kommando og hele kolonneuttrykk for å legge til en kolonne sammen, triks for dette er at hvis vi trenger å sette inn en enkelt kolonne, gir vi en enkelt kolonnehenvisning, men for flere kolonner gir vi flere kolonnereferanser.

Sett inn kolonner i Excel ved hjelp av VBA

Som en del av VBA-koden, kan det hende vi må sette inn noen få kolonner i databladet vårt for å dekke våre behov. Å sette inn kolonne er den enkle hurtigtasten i regnearket ved å trykke Ctrl +, men hva med å sette inn en ny kolonne gjennom VBA-kode. I denne artikkelen om "VBA Insert Column" viser vi deg prosessen med å legge til kolonner i excel, og viser deg forskjellige eksempler på scenarier.

Hvordan setter du inn kolonner i Excel-regneark ved hjelp av VBA?

Vi kan sette inn kolonner i VBA ved å bruke COLUMNS-egenskapen og RANGE-objektet. Du må hvorfor vi trenger kolonner og rekkeviddeobjekter for å sette inn en ny kolonne.

For å sette inn en ny kolonne, må vi identifisere etter hvilken kolonne vi trenger å sette inn, uten å fortelle, etter hvilken kolonne vi trenger å sette inn hvordan VBA kan forstå logikken.

Hvis du for eksempel vil sette inn kolonnen etter kolonne B, kan du konstruere koden slik.

Kolonner (“C”)

Merk: Årsaken til at jeg har brukt C til å sette inn en kolonne etter, fordi den valgte cellen blir flyttet til høyre side.

Etter at kolonnene er spesifisert, må vi få tilgang til "Hele kolonnen" -egenskapen.

Kolonner (“C”). Hele kolonnen

Deretter må vi velge "Sett inn" -metoden.

Kolonner (“C”). EntireColumn.Insert

Dette vil sette inn kolonnen etter kolonne C, og den eksisterende kolonnen C flyttes til D.

Eksempel 1 - Sett inn kolonner ved hjelp av rekkeviddeobjekt i VBA

Se nå på hvordan du setter inn kolonnen ved hjelp av RANGE-objektet. For dette, vurder dataene nedenfor for et eksempel.

Nå vil jeg VBA sette inn kolonnen etter A-kolonnen, følg trinnene nedenfor for å konstruere koden.

Trinn 1: Start subprosedyren.

Trinn 2: Åpne Range- objekt.

Kode:

Sub ColumnInsert_Example1 () Range (End Sub

Trinn 3: Nevn nå kolonnen i dobbelt anførselstegn .

Kode:

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

Trinn 4: Velg nå hele kolonneegenskapen .

Kode:

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

Trinn 5: Etter at du har valgt hele kolonneegenskapen, velger du "Sett inn" -metoden.

Kode:

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

Nå ser koden din slik ut.

Kode:

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

Kjør koden. Den vil sette inn den nye B-kolonnen.

Eksempel 2 - Sett inn flere kolonner

Hvis du for eksempel vil sette inn to nye kolonner etter kolonne A, må vi nevne to kolonneadresser.

Kode:

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

Ovennevnte kode vil sette inn to kolonner etter kolonne A.

Eksempel 3 - Bare med "Sett inn" metode

Vi kan sette inn en ny kolonne ved å bruke "Sett inn" den eneste metoden uten å få tilgang til hele kolonneegenskapen. For dette, la oss forstå syntaksen for "sett inn" -metoden.

Uttrykk. Sett inn ((Skift), (Kopier opprinnelse))

(Skift): Når vi setter inn den nye kolonnen, enten vi trenger kolonnene for å skifte til høyre eller for å skifte til nedsiden i tilfelle rader. Her kan vi bruke to alternativer, “xlToRight” og “xlDownTo”

(Kopier opprinnelse): Dette vil spesifisere formatet for den nylig innsatte kolonnen. Enten du trenger formatet fra venstre side av kolonnen eller fra cellene ovenfor. Her kan vi bruke to alternativer “xlFormatFromLeftOrAbove” og “xlFormatFromRightOrBelow”.

Nedenfor er eksempelkoden for deg.

Sub ColumnInsert_Example1 () Range ("B: B"). Sett inn Skift: = xlToRight, Copyorigin: = xlFormatFromLeftOrAbove End Sub

Eksempel 4 - Sett inn kolonner ved bruk av COLUMNS-egenskap i VBA

Vi har sett hvordan vi kan VBA sette inn kolonner ved hjelp av RANGE-objektet; nå vil vi vise at vi kan sette inn kolonner ved hjelp av "COLUMNS" -egenskapen.

Åpne COLUMNS-egenskapen.

Kode:

Sub ColumnInsert_Example2 () Kolonner (End Sub

Vi kan spesifisere kolonnen på to måter her. Den ene bruker som vanlig alfabetiske referanser, og den andre bruker kolonnetall.

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:

UnderkolonneInsert_eksempel3 () Dim k som heltalskolonner (2). Velg For k = 2 til 8 ActiveCell.EntireColumn.Insett ActiveCell.Offset (0, 2). Velg Neste k Avslut sub

Dette vil sette inn kolonnen slik.

Eksempel 6 - Sett inn kolonne basert på celleverdi

Vi kan også sette inn en kolonne basert på celleverdi også. Se for eksempel på dataene nedenfor.

Her vil jeg sette inn kolonnen hvis celleverdien på første rad er "Year", og dataene mine skal like dette etter å ha satt inn nye kolonner.

Bruk koden nedenfor for å utføre denne oppgaven.

Kode:

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

Du kan laste ned denne VBA Insert Columns Excel her. VBA Sett inn kolonner Excel-mal

Interessante artikler...