Insereix columnes VBA | Com inserir una columna al full de treball d'Excel amb VBA?

Normalment, al full de treball Excel tenim dos mètodes diferents per afegir o inserir columnes, un és la drecera de teclat i un altre mitjançant el mètode de clic dret i inserció, però a VBA hem d’utilitzar l’ordre insert i l’instrucció de columna sencera per afegir qualsevol columna junt, El truc és que si necessitem inserir una sola columna donem una única referència de columna, però per a les diverses columnes donem referències de columna múltiple.

Inseriu columnes a Excel mitjançant VBA

Com a part del codi VBA, és possible que hàgim d’inserir algunes columnes al nostre full de dades per adaptar-les a les nostres necessitats. La inserció de columna és la tecla de drecera fàcil del full de treball prement Ctrl + però què tal si inseriu una nova columna a través del codi VBA. En aquest article sobre "Insereix columna VBA", us mostrarem el procés d'afegir columnes a Excel i us mostrarem diferents exemples d'escenaris.

Com inserir columnes al full de treball d'Excel mitjançant VBA?

Podem inserir columnes a VBA mitjançant la propietat COLUMNS i l’objecte RANGE. Heu de saber per què necessitem columnes i objectes d’interval per inserir una nova columna.

Per inserir una nova columna hem d’identificar després de quina columna hem d’inserir, sense dir després de quina columna hem d’inserir com VBA pot entendre la lògica.

Per exemple, si voleu inserir la columna després de la columna B, podeu construir el codi així.

Columnes ("C")

Nota: el motiu pel qual he fet servir C per inserir una columna després perquè la cel·la seleccionada es desplaçarà cap al costat dret.

Després d'especificar les columnes, hem d'accedir a la propietat "Columna sencera".

Columnes ("C"). EntireColumn

A continuació, hem de triar el mètode "Insert".

Columnes ("C"). EntireColumn.Insert

Això inserirà la columna després de la columna C i la columna C existent es mourà a D.

Exemple 1: inseriu columnes amb objecte d'interval a VBA

Ara mireu la manera d’inserir la columna mitjançant l’objecte RANGE. Per a això, considereu les dades següents com a exemple.

Ara vull inserir VBA la columna després de la columna A, seguiu els passos següents per construir el codi.

Pas 1: Inicieu el procediment secundari.

Pas 2: Obert Rang objecte.

Codi:

 Sub ColumnInsert_Example1 () Range (End Sub 

Pas 3: Ara mencioneu la columna a cometes dobles.

Codi:

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

Pas 4: Ara tria Columna sencera propietat.

Codi:

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

Pas 5: Després de seleccionar la propietat de la columna sencera, trieu "Insereix" mètode.

Codi:

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

Ara el vostre codi té aquest aspecte.

Codi:

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

Executeu el codi que inserirà la nova columna B.

Exemple 2: inseriu diverses columnes

Per exemple, si voleu inserir dues columnes noves després de la columna A, hem d'esmentar dues adreces de columna.

Codi:

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

El codi anterior inserirà dues columnes després de la columna A.

Exemple 3: només amb el mètode "Insereix"

Podem inserir una nova columna fent servir "Insereix" l'únic mètode sense accedir a la propietat de la columna sencera. Per a això, entenem la sintaxi del mètode "inserir".

Expression.Insert ([Maj], [Copia origen])

[Maj]: Quan inserim la nova columna si necessitem que les columnes es desplacin cap al costat dret o es desplacen cap a la part inferior en cas de files. Aquí podem utilitzar dues opcions "xlToRight" i "xlDownTo"

[Copia origen]: S’especificarà el format de la nova columna inserida. Si necessiteu el format a la part esquerra de la columna o a les cel·les anteriors. Aquí podem utilitzar dues opcions "xlFormatFromLeftOrAbove" i "xlFormatFromRightOrBelow".

A continuació es mostra l’exemple de codi per a vosaltres.

 Sub ColumnInsert_Example1 () Range ("B: B"). Inseriu Maj: = xlToRight, Copyorigin: = xlFormatFromLeftOrAbove End Sub 

Exemple 4: inseriu columnes mitjançant la propietat COLUMNS a VBA

Hem vist com inserir VBA columnes mitjançant l'objecte RANGE, ara mostrarem que podem inserir columnes mitjançant la propietat "COLUMNS".

Obriu la propietat COLUMNS.

Codi:

 Sub ColumnInsert_Example2 () Columnes (Sub Sub 

Aquí podem especificar la columna de dues maneres. Un fa servir referències alfabètiques com de costum i un altre fa servir números de columna.

Si voleu inserir la columna després de la columna A, el codi serà COLUMNS ("B"). Si feu servir referència numèrica, el codi serà COLUMNS (2).

Codi:

 Sub ColumnInsert_Example2 () Columnes ("B"). Finalitzar sub 

Ara us apareix el problema perquè quan fem servir la propietat COLUMNS no podem accedir a la llista IntelliSense.

Codi:

 Sub ColumnInsert_Example2 () Columnes ("B"). Final complet Sub 

Aquí hem d’estar segurs del que estem fent. Per tant, aquest és el motiu pel qual us he mostrat primer l’objecte RANGE.

Codi:

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

Exemple # 5: inseriu columnes alternatives

Suposem que teniu les dades com la següent imatge.

Si voleu inserir noves columnes després de cada fila alternativa, hem d’utilitzar bucles VBA. A sota del codi, heu fet el codi a mida.

Codi:

 Sub ColumnInsert_Example3 () Dim k com a columnes enteres (2). Seleccioneu Per a k = 2 a 8 ActiveCell.EntireColumn.Insert ActiveCell.Offset (0, 2). Seleccioneu Next k End Sub 

Això inserirà la columna així.

Exemple # 6: inseriu una columna basada en el valor de la cel·la

També podem inserir una columna en funció del valor de la cel·la. Per exemple, mireu les dades següents.

Aquí vull inserir la columna si el valor de la cel·la de la primera fila és "Any" i a les meves dades els agradaria després d'inserir columnes noves.

Utilitzeu el codi següent per realitzar aquesta tasca.

Codi:

 Sub ColumnInsert_Example4 () Dim k Com enter Dim Dim x Com enter x = 2 Per k = 2 a 12 Si les cel·les (1, x). Valor = "Any" i les cel·les (1, x). Finalitzar si x = x + 1 Següent k Finalitzar sub 

Podeu descarregar aquest VBA Insert Columns Excel aquí. Plantilla d'Excel d'inserció de columnes VBA