Columnas de inserción de VBA

Normalmente, en la hoja de trabajo de Excel tenemos dos métodos diferentes para agregar o insertar columnas, uno es el método abreviado de teclado y otro usando el método de clic derecho e insertar, pero en VBA tenemos que usar el comando de inserción y la declaración de columna completa para agregar cualquier columna, el El truco para esto es que si necesitamos insertar una sola columna, le damos una referencia a una sola columna, pero para las columnas múltiples le damos referencias a múltiples columnas.

Insertar columnas en Excel usando VBA

Como parte del código VBA, es posible que necesitemos insertar algunas columnas en nuestra hoja de datos para satisfacer nuestras necesidades. Insertar columna es la tecla de acceso directo fácil en la hoja de trabajo presionando Ctrl +, pero ¿qué tal insertar una nueva columna a través del código VBA? En este artículo sobre “Insertar columna de VBA”, le mostraremos el proceso de agregar columnas en Excel y le mostraremos ejemplos de diferentes escenarios.

¿Cómo insertar columnas en una hoja de cálculo de Excel usando VBA?

Podemos insertar columnas en VBA usando la propiedad COLUMNS y el objeto RANGE. Debe saber por qué necesitamos columnas y objetos de rango para insertar una nueva columna.

Para insertar una nueva columna, debemos identificar después de qué columna debemos insertar, sin decir después de qué columna debemos insertar cómo VBA puede entender la lógica.

Por ejemplo, si desea insertar la columna después de la columna B, puede construir el código de esta manera.

Columnas ("C")

Nota: La razón por la que he usado C para insertar una columna después porque la celda seleccionada se desplazará hacia el lado derecho.

Una vez especificadas las columnas, debemos acceder a la propiedad "Toda la columna".

Columnas ("C"). Toda la columna

Luego debemos elegir el método "Insertar".

Columnas ("C"). Columna completa. Insertar

Esto insertará la columna después de la columna C y la columna C existente se moverá a D.

Ejemplo n. ° 1 - Insertar columnas usando un objeto de rango en VBA

Ahora, observe la forma de insertar la columna usando el objeto RANGE. Para ello, considere los datos siguientes como ejemplo.

Ahora quiero que VBA inserte la columna después de la columna A, siga los pasos a continuación para construir el código.

Paso 1: Inicie el procedimiento secundario.

Paso 2: Objeto de rango abierto .

Código:

 Sub ColumnInsert_Example1 () Rango (End Sub 

Paso 3: ahora menciona la columna entre comillas dobles .

Código:

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

Paso 4: Ahora elija la propiedad Toda la columna .

Código:

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

Paso 5: Después de seleccionar la propiedad Toda la columna, elija el método "Insertar" .

Código:

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

Ahora su código se ve así.

Código:

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

Ejecute el código que insertará la nueva columna B.

Ejemplo n. ° 2: insertar varias columnas

Por ejemplo, si desea insertar dos columnas nuevas después de la columna A, entonces debemos mencionar dos direcciones de columna.

Código:

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

El código anterior insertará dos columnas después de la columna A.

Ejemplo n. ° 3: con el método "Insertar" únicamente

Podemos insertar una nueva columna usando "Insertar" el único método sin acceder a la propiedad Toda la columna. Para esto, entendamos la sintaxis del método "insertar".

Expresión.Insertar ([Mayús], [Copiar origen])

[Shift]: cuando insertamos la nueva columna, si necesitamos que las columnas se muevan hacia el lado derecho o hacia abajo en el caso de las filas. Aquí podemos usar dos opciones "xlToRight" y "xlDownTo"

[Copiar origen]: esto especificará el formato de la columna recién insertada. Si necesita el formato del lado izquierdo de la columna o de las celdas anteriores. Aquí podemos usar dos opciones “xlFormatFromLeftOrAbove” y “xlFormatFromRightOrBelow”.

A continuación se muestra el código de ejemplo para usted.

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

Ejemplo # 4 - Insertar columnas usando la propiedad COLUMNS en VBA

Hemos visto cómo insertar columnas en VBA usando el objeto RANGE, ahora mostraremos que podemos insertar columnas usando la propiedad "COLUMNS".

Abra la propiedad COLUMNAS.

Código:

 Sub ColumnInsert_Example2 () Columnas (End Sub 

Podemos especificar la columna de dos formas aquí. Uno utiliza referencias alfabéticas habituales y otro utiliza números de columna.

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