Cómo eliminar toda la fila en Excel usando VBA (ejemplos)

Agregar y eliminar filas es parte de las tareas comunes diarias cuando se trabaja con Excel.

Si bien puede hacer esto fácilmente desde la propia hoja de trabajo, a veces es posible que desee usar la ruta VBA para eliminar filas en Excel. Estos podrían ser eliminar una fila específica, varias filas en la selección, eliminar filas alternativas o aquellas que tienen un valor específico.

En este tutorial, le mostraré cómo eliminar filas en Excel usando VBA (múltiples escenarios).

¡Entonces empecemos!

Eliminar una fila completa usando VBA

Para eliminar una fila completa en Excel usando VBA, debe usar el método EntireRow.Delete.

Por ejemplo, si desea eliminar toda la primera fila en una hoja de trabajo, puede usar el siguiente código:

Sub DeleteEntireRow () Filas (1) .EntireRow.Delete End Sub

El código anterior primero especifica la fila que debe eliminarse (lo que se hace especificando el número entre corchetes) y luego usa el método EntireRow.Delete para eliminarlo.

También puede eliminar varias filas especificando estas filas en el código.

Por ejemplo, el siguiente código eliminará las filas número 1, 5 y 9 en la hoja de trabajo:

Sub DeleteEntireRow () Filas (9) .EntireRow.Eliminar filas (5) .EntireRow.Eliminar filas (1) .EntireRow.Delete End Sub

El código anterior usa la misma lógica, donde especifica los números de fila y Excel eliminará estas filas una por una.

IMPORTANTE: cuando elimine filas con algo similar al código anterior, recuerde comenzar a eliminar desde la parte inferior y luego subir. Por ejemplo, en caso de que comience en la parte superior y elimine la fila 1 primero, todas las filas de abajo se desplazarán una fila hacia arriba y la numeración estará desactivada (ya que la fila 5 se convertiría en la fila 4 y así sucesivamente)

Eliminar todas las filas de la selección

En caso de que desee eliminar todas las filas en un rango de celdas seleccionado, puede usar el código de macro de VBA a continuación:

Sub DeleteEntireRow () Selection.EntireRow.Delete End Sub

El código anterior se aplica al método EntireRow.Delete a toda la selección.

Eliminar filas alternativas (o eliminar cada tercera / cuarta / enésima fila)

A veces, puede obtener un volcado de datos en el que cada segunda fila (o tercera, cuarta o enésima fila) es inútil y debe eliminarse.

Solía ​​trabajar con datos financieros en los que cada segunda fila estaba vacía y tenía que eliminarse.

Este es el tipo de escenario en el que VBA realmente brilla.

A continuación se muestra el código VBA que recorrerá todas las filas de la selección y eliminará cada segunda fila:

Sub DeleteAlternateRows () RCount = Selection.Rows.Count For i = RCount To 1 Step -2 Selection.Rows (i) .EntireRow.Delete Next i End Sub

Déjame explicarte cómo funciona este código VBA.

Primero, he usado una variable RCount para obtener el número total de filas de la selección.

Luego he usado un bucle For Next para ejecutar esto tantas veces como filas hay. Por ejemplo, si hay 12 filas, este ciclo se ejecutará de 12 a 1 (es decir, 12 veces). Es importante ejecutar esto desde la última fila de la selección hasta la primera, ya que no queremos que los números de fila cambien cuando se elimina una fila.

Además, se usa el Paso -2 ya que necesitamos eliminar cada dos filas (de abajo hacia arriba). En caso de que desee eliminar una de cada tres filas, puede utilizar -3.

Dentro del ciclo de VBA, he usado el método Selection.Rows (i) .EntireRow.Delete para eliminar cada fila alternativa.

Eliminar filas en blanco con VBA

También puede utilizar el método EntireRow.Delete para eliminar todas las filas en blanco.

A continuación se muestra el código VBA que seleccionará celdas en blanco en el conjunto de datos seleccionado y eliminará toda la fila.

Sub DeleteBlankRows () Selection.SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub

El código anterior usa la propiedad SpecialCells para seleccionar y eliminar todas las celdas que están en blanco. Este es el mismo método que también nos permite usar el cuadro de diálogo "Ir a especial" para seleccionar todas las celdas en blanco.

Una vez que estas celdas en blanco se identifican con SpecialCell, se eliminan mediante el método EntireRow.Delete.

Nota: Este método selecciona celdas que están en blanco y no verifica si toda la fila está en blanco o no. Entonces, si alguna celda está vacía en una fila, esto aún eliminaría toda la fila.

Eliminar filas con una palabra / valor específico

También puede usar un código VBA simple para recorrer cada celda en el rango seleccionado y eliminar todas las filas donde una celda contiene un texto o valor específico.

Por ejemplo, suponga que tiene un conjunto de datos y quiero eliminar todas las celdas que tienen el texto Impresora en la columna 2 de la selección.

A continuación se muestra el código que hará esto:

Sub DeleteRowswithSpecificValue () For i = Selection.Rows.Count To 1 Step -1 If Cells (i, 2) .Value = "Printer" Then Cells (i, 2) .EntireRow.Delete End If Next i End Sub

El código anterior primero cuenta el número total de filas en la selección. Esto asegurará que el ciclo se ejecute solo estas veces. A continuación, utiliza el "bucle para el siguiente" para pasar por todas las celdas de la columna 2.

La instrucción IF THEN ELSE se usa para verificar el valor en cada celda en la columna 2. Y en caso de que el valor / texto coincida con el texto especificado (que es "Impresora" en este ejemplo).

En este ejemplo, he comprobado si el texto coincide con una cadena específica o no. También puede hacer esto con valores. Por ejemplo, puede eliminar todas las filas en las que el valor de venta sea inferior a 1000 o superior a 1000.

Nota: una cosa importante a tener en cuenta aquí es que el bucle se ejecuta desde Selection.Rows.Count To 1 para asegurarse de que cuando se elimina una fila, no afecte a las filas superiores.

Cómo usar este código VBA

Ahora déjame mostrarte cómo usar todos los códigos mencionados en este tutorial para eliminar toda la fila.

Debe copiar y pegar estos códigos en un módulo en Excel VB Editor. Una vez que haya copiado estos códigos, puede ejecutar los códigos macro.

A continuación se muestran los pasos para copiar y pegar estos códigos VBA en un módulo:

  1. Mantenga presionada la tecla ALT y presione la tecla F11 (o Función + Opción + F11 en Mac). Esto abrirá el Editor de VB
  2. En el VB Editor, tendrá el explorador de proyectos a la izquierda. Si no lo ve, vaya a la opción Ver y luego haga clic en Explorador de proyectos.
  3. Haga clic con el botón derecho en cualquier objeto en el Explorador de proyectos (para el libro de trabajo en el que desea ejecutar el código).
  4. Vaya a Insertar y luego haga clic en Módulo. Esto insertará un nuevo módulo para el libro de trabajo.
  5. Copie y pegue los códigos anteriores en el módulo.

Y para ejecutar estos códigos, puede colocar el cursor en cualquier lugar del código (que desea ejecutar) y presionar la tecla F5 (o hacer clic en el triángulo verde en la barra de herramientas de VBA).

También escribí un tutorial detallado sobre diferentes formas de ejecutar códigos de macro VBA en Excel.

En caso de que necesite usar alguno de estos códigos con bastante frecuencia, también puede considerar agregarlos al Libro de trabajo de macros personal y luego al QAT. De esta manera, el código estará disponible para usted en cualquiera de sus libros de trabajo con un solo clic.

Entonces, estos fueron algunos códigos VBA que puede usar para eliminar filas enteras en Excel (en diferentes escenarios). La misma lógica también se puede aplicar en caso de que desee eliminar columnas en lugar de filas (con el ajuste correspondiente en los ejemplos de código).

¡Espero que hayas encontrado útil este tutorial!

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave