VBA Insertar fila o columna
In this Article
Este tutorial demostrará cómo usar VBA para insertar filas y columnas en Excel.
Para insertar filas o columnas utilizaremos el método de inserción.
Insertar una sola fila o columna
Insertar una nueva fila
Para insertar una sola fila, puedes utilizar el objeto Rows:
Rows(4).Insert
O puedes utilizar el Objeto Range junto con EntireRow:
Range("B4").EntireRow.Insert
Insertar una nueva columna
De forma similar a la inserción de filas, podemos utilizar el Objeto Columns para insertar una columna:
Columns(4).Insert
O el Objeto Range, junto con EntireColumn:
Range("B4").EntireColumn.Insert
Insertar Varias Filas o Columnas
Insertar varias filas
Al insertar múltiples filas con el objeto Rows, debes introducir las filas entre comillas:
Rows("4:6").Insert
La inserción de varias filas con el Objeto Range funciona igual que con una sola fila:
Range("B4:B6").EntireRow.Insert
Insertar varias columnas
Al insertar varias columnas con el Objeto Columns, introduzca las letras de las columnas entre comillas:
Columns("B:D").Insert
La inserción de múltiples columnas con el Objeto Range funciona igual que con una sola columna:
Range("B4:B4").EntireColumn.Insert
Insertar – Desplazamiento y Copiar Origen
El método Insert tiene dos argumentos opcionales:
- Shift – En qué dirección desplazar las celdas
- CopyOrigin – Qué formato de celda copiar (arriba, abajo, izquierda o derecha)
El argumento Shift es irrelevante cuando se insertan filas o columnas enteras. Sólo permite indicar que se desplace hacia abajo o hacia la derecha:
- xlShiftDown – Desplaza las celdas hacia abajo
- xlShiftToRight – Desplaza las celdas hacia la derecha
Como puede ver, no puede desplazarse hacia arriba o hacia la izquierda.
El argumento CopyOrigin tiene dos entradas potenciales:
- xlFormatFromLeftorAbove – (0) Las celdas recién insertadas toman el formato de las celdas de arriba o de la izquierda
- xlFormatFromRightorBelow – (1) Las celdas recién insertadas toman el formato de las celdas de abajo o de la derecha.
Veamos algunos ejemplos del argumento CopyOrigin. Aquí están nuestros datos iniciales:
Este ejemplo insertará una fila, tomando el formato de la fila anterior.
Rows(5).Insert , xlFormatFromLeftOrAbove
Este ejemplo insertará una fila, tomando el formato de la fila de abajo.
Rows(5).Insert , xlFormatFromRightOrBelow
Otros ejemplos de inserción
Insertar filas o columnas copiadas
Si desea insertar una fila copiada, deberá utilizar un código como el siguiente
Range("1:1").Copy
Range("5:5").Insert
Aquí copiamos la fila 1 y la insertamos en la fila 5.
Insertar Filas Basadas en el Valor de la Celda
Esto hará un bucle a través de un rango, insertando filas basadas en los valores de las celdas:
Sub InsertRowswithSpecificValue()
Dim cell As Range
For Each cell In Range("B2:B20")
If cell.Value = "insert" Then
cell.EntireRow.Insert
End If
Next cell
End Sub
Borrar filas o columnas
Para eliminar filas o columnas, basta con utilizar el método Delete.
Rows(1).Delete
Range("a1").EntireRow.Delete
Columns(1).Delete
Range("a1").EntireColumn.Delete