Inicio
» MS OFFICE
»
Cómo usar VBA para insertar filas en Excel: 3 métodos fiables
Cómo usar VBA para insertar filas en Excel: 3 métodos fiables
Para insertar filas en Excel con VBA, utilice el Insertmétodo en una fila de la hoja de cálculo. Los tres ejemplos siguientes muestran cómo agregar una o varias filas en blanco, insertar una copia de una fila existente y crear una fila en blanco sin formato heredado. Cada macro se dirige a una hoja de cálculo llamada Data; reemplace ese nombre con el nombre exacto de la pestaña en su libro de trabajo.
Paso 1: Prepare el libro de trabajo y abra el editor de VBA.
Utilice la versión de escritorio de Excel. Excel para la web puede abrir un libro de trabajo que contenga macros, pero no puede crear, editar ni ejecutar macros VBA. Si su libro de trabajo contiene datos importantes, guarde una copia de seguridad antes de ejecutar el código, ya que la inserción de filas desplaza las filas que se encuentran debajo del punto de inserción.
En Windows, pulsa Alt+F11 para abrir el Editor de Visual Basic (VBE). También puedes seleccionar Desarrollador > Visual Basic . En el VBE, selecciona Insertar > Módulo y pega una macro en el módulo en blanco. Las instrucciones del VBE de Microsoft muestran el mismo flujo de trabajo para los módulos.
Abra un módulo VBA estándar en el Editor de Visual Basic para agregar la macro.
Paso 2: Elija uno de los tres métodos de inserción de filas.
Método 1: Insertar una o varias filas en blanco
Esta macro inserta una fila completa de la hoja de cálculo encima de la fila 4 actual. El Shift:=xlDownargumento le indica a Excel que mueva las celdas existentes hacia abajo para dejar espacio. La documentación de referencia Range.Insert describe las opciones de desplazamiento y formato.
Sub InsertOneRow()
ThisWorkbook.Worksheets("Data").Rows(4).Insert Shift:=xlDown
End Sub
Para insertar dos filas a partir de la fila 3, utilice un rango de filas:
Sub InsertTwoRows()
ThisWorkbook.Worksheets("Data").Rows("3:4").Insert Shift:=xlDown
End Sub
Se insertan las filas 3 y 4, y las filas existentes se desplazan hacia abajo. Modifique los números de fila para elegir dónde comienzan las nuevas filas y cuántas se agregarán. La ThisWorkbookreferencia indica que la macro debe guardarse en el libro de trabajo que desea modificar.
Al insertar las filas 3 y 4, se crea un espacio de dos filas y se desplazan los registros existentes hacia abajo.
Método 2: Insertar una copia de una fila existente
Utilice esta versión cuando la nueva fila deba repetir los valores, fórmulas y formato de una fila existente. Primero crea un espacio en la fila 6 y luego copia la fila 2 en ese nuevo espacio. La fila 2 original permanece en su lugar. Microsoft documenta el argumento de destino opcional en su referencia de Range.Copy .
Sub InsertCopyOfRow()
With ThisWorkbook.Worksheets("Data")
.Rows(6).Insert Shift:=xlDown
.Rows(2).Copy Destination:=.Rows(6)
End With
End Sub
Reemplace 2con el número de fila de origen y 6con la fila donde debería aparecer el duplicado. Dado que se copia la fila completa, revise las fórmulas y referencias en la copia insertada antes de utilizarla.
La fila Alpha copiada aparece en la fila 6; la fila original permanece en la fila 2.
Método 3: Insertar una fila sin copiar el formato.
Excel puede transferir el formato de una fila adyacente a una fila insertada. Inserte la fila y, a continuación, ClearFormatselimine ese formato:
Sub InsertUnformattedRow()
With ThisWorkbook.Worksheets("Data")
.Rows(3).Insert Shift:=xlDown
.Rows(3).ClearFormats
End With
End Sub
Esto borra el formato de la fila insertada en la hoja de cálculo. No elimina los valores de las demás filas. La documentación de ClearFormats de Microsoft describe este método.
ClearFormats elimina el formato de celda heredado de la fila insertada.
Paso 3: Ejecute la macro y compruebe el resultado.
Vuelva al Editor de Visual Basic (VBE), coloque el cursor en cualquier parte del procedimiento que desea ejecutar y pulse F5 . También puede volver a Excel y usar Desarrollador > Macros , seleccionar el nombre de la macro y elegir Ejecutar . Consulte la guía de Microsoft para ejecutar una macro en Excel para conocer las opciones disponibles.
Antes de guardar, compruebe que la fila o filas esperadas se hayan insertado en la hoja de cálculo correspondiente. Si desea conservar el código VBA en el libro, guárdelo como un libro de Excel habilitado para macros (.xlsm) ; al guardarlo como un .xlsxarchivo normal, las macros VBA no se conservan. Microsoft explica esto en sus instrucciones para guardar macros . Ejecute macros únicamente desde fuentes de confianza y siga la política de seguridad de macros de su organización.
Problemas comunes
“Índice fuera de rango”: El nombre de la hoja de cálculo en el código no coincide exactamente con el nombre de la pestaña. Actualice el código "Data", incluyendo los espacios si la pestaña los contiene.
Las filas aparecen en el libro de trabajo incorrecto: El código utiliza ThisWorkbook, que hace referencia al archivo que contiene la macro. Guarde el módulo en el libro de trabajo que desea editar.
Estos ejemplos insertan filas completas de la hoja de cálculo. Si los datos son una tabla de Excel y desea agregar un registro a la tabla, utilice el ListRows.Addmétodo de la tabla para que la nueva entrada pertenezca a ella.