¿cómo insertar una fila usando vba en excel?
En este tutorial, veremos cómo insertar una fila o columna usando código VBA en Excel. También exploraremos cuáles son las diferentes formas de escribir una macro para esto.
Insertar una sola fila usando VBA
Para insertar una fila usando código VBA, debe usar la propiedad «Fila completa» con el método «Insertar». Con la propiedad de fila completa, puede hacer referencia a la fila completa usando una celda y luego insertar una nueva fila allí. De forma predeterminada, insertará una sola fila antes de la celda que mencionaste.
- Primero, especifique una celda usando el objeto de rango.
- Ahora ingrese un punto (.) para obtener la lista de propiedades y métodos.
- Después de eso, seleccione la propiedad «Fila completa» o ingrésela.
- Al final, ingrese un punto (.) nuevamente y seleccione el método “Insertar” o escríbalo.
Range("A1").EntireRow.Insert
Su código está listo aquí para insertar una línea. Ahora, cuando ejecuta este código, instantáneamente inserta una nueva fila antes de la celda A1.
Insertar varias líneas
Hay dos formas de insertar varias filas en una hoja de cálculo que encontré. El primero es el mismo método de inserción que utilizamos en el ejemplo anterior.
Con esto, debes especificar un rango cuyo número sea equivalente al número de filas que deseas insertar. Ahora suponga que desea insertar 5 líneas después, en este caso puede usar un código como este.
Para ser honesto, este método no me pareció muy útil porque tienes que cambiar el rango si quieres cambiar el número de filas.
Así que aquí está el segundo método.
Dim iRow As Long Dim iCount As Long Dim i As Long iCount = InputBox(Prompt:="How many rows you want to add?") iRow = InputBox _ (Prompt:="After which row you want to add new rows? (Enter the row number") For i = 1 To iCount Rows(iRow).EntireRow.Insert Next i
Cuando ejecuta este código, le pide que ingrese la cantidad de líneas que desea agregar y luego el número de línea donde desea agregar todas estas líneas. Utiliza un bucle FOR (For Next) para repetir este número de veces e insertar filas una por una.
Insertar filas según los valores de las celdas
Si desea insertar filas según el valor de una celda , puede utilizar el siguiente código.
Dim iRow As Long Dim iCount As Long Dim i As Long iCount = Range("A1").Value iRow = Range("B1").Value For i = 1 To iCount Rows(iRow).EntireRow.Insert Next i
Cuando ejecuta esta macro, toma la cantidad de filas de la celda A1 y la fila donde desea agregar filas de la celda B1.
Insertar una línea sin formatear
Cuando inserta una fila donde la fila de arriba tiene un formato específico, en este caso la fila también tendrá ese formato automáticamente. Y la forma más sencilla de gestionar esta situación es utilizar formatos claros . Considere el siguiente código.
Rows(7).EntireRow.Insert Rows(7).ClearFormats
Cuando ejecuta el código anterior, inserta una nueva línea antes de la séptima línea. Ahora, ¿qué sucede? Cuando insertas una línea antes de la séptima línea, esa nueva línea se convierte en la séptima línea, luego la segunda línea de código borra los formatos de esa línea.
Insertar una línea copiada
También puedes utilizar el mismo método para copiar una línea y luego insertarla en otro lugar. Vea el siguiente código.
Application.CutCopyMode = False With Worksheets("Data") .Rows(5).Copy .Rows(9).Insert Shift:=xlShiftDown End With Application.CutCopyMode = True