Columnas de inserción de VBA - ¿Cómo insertar una columna en una hoja de cálculo de Excel con 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 al usar el método de clic derecho e insertar, pero en VBA tenemos que usar el comando insertar 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. 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 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 utilizando el objeto RANGE; ahora, mostraremos que podemos insertar columnas usando la propiedad "COLUMNAS".

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 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:

Sub ColumnInsert_Example3 () Dim k As Integer Columns (2) .Seleccione para k = 2 a 8 ActiveCell.EntireColumn.Insert ActiveCell.Offset (0, 2) .Seleccione Siguiente k End Sub

Esto insertará la columna así.

Ejemplo n. ° 6 - Insertar columna según el valor de la celda

También podemos insertar una columna basada en el valor de la celda. Por ejemplo, mire los datos a continuación.

Aquí quiero insertar la columna si el valor de la celda de la primera fila es "Año", y mis datos deberían ser así después de insertar nuevas columnas.

Utilice el siguiente código para realizar esta tarea.

Código:

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 Fin si x = x + 1 Siguiente k Fin Sub

Puede descargar este VBA Insert Columns Excel aquí. Plantilla de Excel de columnas de inserción de VBA

Articulos interesantes...