Eliminar una fila en VBA

Iqra Hasnain 15 febrero 2024
  1. Eliminar una fila en VBA
  2. Cómo eliminar una fila completa en VBA
  3. Cómo eliminar varias filas en VBA
  4. Cómo eliminar filas alternativas en VBA
  5. Cómo eliminar filas en blanco en VBA
  6. Cómo eliminar filas con valores específicos en VBA
  7. Cómo eliminar filas duplicadas en VBA
Eliminar una fila en VBA

Presentaremos cómo podemos eliminar filas para diferentes situaciones con ejemplos en VBA.

Eliminar una fila en VBA

Eliminar una fila de una hoja de Excel es un trabajo fácil que se puede hacer usando el método abreviado de teclado o un mouse o panel táctil. Pero cuando somos específicos acerca de eliminar una o varias filas, es útil trabajar con la ruta VBA.

VBA se utiliza para eliminar filas o columnas de una hoja de Excel si los campos innecesarios forman parte de los datos. Puede ayudar al usuario a eliminar una columna en una determinada condición.

Por ejemplo, las filas duplicadas se pueden eliminar fácilmente con el comando VBA.

Este artículo cubre algunos de los principales ejemplos y códigos VBA relacionados que pueden ser útiles para que el usuario trabaje en hojas de cálculo de Excel. Estos múltiples escenarios incluyen:

  1. Para eliminar una fila completa

    1.1. Para eliminar la primera fila

    1.2. Para eliminar una fila específica

  2. Para eliminar varias filas

  3. Para eliminar filas alternativas

  4. Para eliminar filas en blanco

  5. Para eliminar filas con valores de fecha específicos

  6. Para eliminar filas duplicadas

Cómo eliminar una fila completa en VBA

Ahora, analicemos nuestro primer escenario en el que intentaremos eliminar la primera fila en VBA; si queremos eliminar la primera fila, el método EntireRow.Delete de VBA nos puede ayudar.

Ahora usemos este método en nuestro ejemplo para eliminar la primera fila de nuestra hoja de Excel.

Crearemos un sub como deleteFirstRow(). El código para este propósito se muestra a continuación.

# VBA
Sub DeleteFirstRow()
ThisWorkbook.Worksheets(1).Rows(1).EntireRow.Delete
End Sub

Producción:

eliminando la primera fila usando el código VBA

El ejemplo anterior muestra que este código funciona al especificar que la fila se refiere a un número específico y luego usa el método EntireRow.Delete; por lo tanto, el código se puede usar para cualquier fila mencionando el número de fila.

Entonces, intentemos eliminar los números de fila 7 y 10 usando el método anterior como se muestra a continuación.

# VBA
Sub DeleteSpecificRow()
ThisWorkbook.Worksheets(1).Rows(7).EntireRow.Delete
ThisWorkbook.Worksheets(1).Rows(10).EntireRow.Delete
End Sub

Producción:

eliminando filas específicas usando el código VBA

El ejemplo anterior muestra que cuando pasamos el número de fila que queremos eliminar, podemos eliminar fácilmente toda la fila usando el método EntireRow.Delete.

Cómo eliminar varias filas en VBA

Eliminamos varias filas usando los múltiples métodos EntireRow.Delete en el ejemplo anterior. Pero ahora, hablaremos sobre cómo podemos eliminar varias filas con un solo método.

Podemos usar el objeto rango en VBA para eliminar varias filas. El usuario selecciona primero la cantidad de celdas que desea eliminar de la hoja de Excel y pasa el rango como se muestra a continuación.

# VBA
Sub deleteMultipleRow()
Range("A1:C7").EntireRow.Delete
End Sub

Producción:

eliminando varias filas usando el código VBA

El ejemplo anterior muestra que usando el método Range(), podemos pasar el rango de filas y columnas que queremos eliminar usando el método EntireRow.Delete.

Varias filas y columnas pueden eliminarse directamente de los datos. Usamos el código VBA para eliminar varias filas (fila 2 a fila 7) de los datos.

# VBA
Rows("2:7").Delete

Producción:

eliminando varias filas usando la función de fila en el código VBA

Si queremos eliminar un rango de columnas (de B a C), podemos usar el siguiente método.

# VBA
Columns("B:C").Delete

Producción:

eliminar varias columnas usando la función de columnas en el código VBA

Cómo eliminar filas alternativas en VBA

Las hojas de Excel se usan para muchos propósitos y es un software común que se usa para guardar registros en forma de hojas de Excel. Las hojas de Excel son una parte básica del sistema financiero porque la mayoría de los datos se almacenan en hojas de Excel para encontrar el resultado de esos datos con fórmulas.

Algunas hojas de Excel financieras contienen filas vacías en números alternativos que deben eliminarse para mejorar el registro. VBA ayuda al usuario a eliminar filas alternativas completas que no son útiles.

Como se muestra a continuación, intentemos eliminar las filas con números alternativos y crear un sub para este propósito.

Sub AlternateRowDel()
rowLen = Selection.Rows.Count
For a = rowLen To 1 Step -2
    Selection.Rows(a).EntireRow.Delete
Next a
End Sub

Producción:

eliminando filas alternativas en código VBA

Como puede ver en el apartado anterior AlternateRowDel(), guardamos el número de filas de la selección en una variable rowLen, que es el número total de filas que se eliminarán por completo.

Dentro de nuestro sub, tenemos un bucle for que se ejecuta con un Paso -2, que indica que se eliminará cada segunda fila. Si queremos eliminar cada tercera fila, escriba paso -3, y podemos usar el mismo proceso para cualquier número diferente de la fila alternativa que el usuario desea eliminar de los datos.

Cómo eliminar filas en blanco en VBA

Cuando estamos trabajando con una gran colección de datos, hay posibilidades de que muchas o pocas filas estén vacías. Es posible que deseemos eliminarlos con VBA porque puede llevar mucho tiempo y ser difícil encontrarlos si comenzamos a eliminarlos manualmente.

El código suele funcionar con mayor precisión que los humanos cuando proporcionamos una gran recopilación de datos. Un método, SpecialCells, puede eliminar estas filas.

Podemos pasar los xlCellTypeBlanks, seleccionando solo celdas en blanco. Como se muestra a continuación, veamos un ejemplo e intentemos eliminar todas las filas en blanco usando VBA.

# VBA
Sub RemoveBlankRows()
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Producción:

eliminando filas en blanco en código VBA

El ejemplo anterior muestra que podemos eliminar cientos o miles de filas vacías con una línea de código. Si empezamos a borrarlos manualmente, puede tardar horas o días.

Cómo eliminar filas con valores específicos en VBA

A veces podemos encontrarnos con una situación en la que tenemos que eliminar filas que contienen un valor específico. Y puede ser un proceso difícil y agitado eliminar estas filas manualmente.

Pero VBA también proporciona la solución para este problema. Podemos crear un sub personalizado que pueda iterar a través de todas las filas y encontrar ese valor específico.

Si el valor se encuentra en alguna de estas filas, podemos eliminar esa fila usando el método EntireRow.Delete.

Usemos esta lógica en nuestro ejemplo, como se muestra a continuación.

# VBA
Sub RemoveWithValue()
For a = Selection.Rows.Count To 1 Step -1
If Cells(a, 1).Value = "Delete" Then
Cells(a, 1).EntireRow.Delete
End If
Next a
End Sub

Producción:

eliminando filas con un valor específico en el código VBA

El ejemplo anterior muestra que este código recorrerá todas las filas y encontrará la palabra eliminar. Si se encontró eliminar en alguna de estas filas.

Nuestro código eliminará estas filas.

Cómo eliminar filas duplicadas en VBA

Puede haber situaciones en las que tengamos un conjunto de datos con muchos duplicados que pueden causar problemas en algunos de los resultados. Eliminar duplicados también puede resultar frenético si empezamos a hacerlo de forma manual.

También puede ser difícil recordar si una determinada entrada apareció antes.

Para hacerlo más fácil y sencillo, podemos usar otro método en VBA, RemoveDuplicates. Este método toma un rango, encuentra duplicados y los elimina.

Usemos este escenario en nuestro ejemplo, como se muestra a continuación.

# VBA
Range("A1:A10").RemoveDuplicates Columns:=1

Producción:

eliminando filas con valor duplicado en código VBA

El ejemplo anterior muestra que pasamos el rango de la celda a1 a la celda b10. Y nuestro código encontrará cualquier duplicado y lo eliminará.

Cómo usar el código VBA en una hoja de Excel

A veces, las personas se confunden acerca de dónde pueden escribir un código VBA para ejecutar los scripts en sus hojas de Excel.

Aquí hay algunos pasos que podemos seguir para ejecutar cualquiera de nuestros códigos VBA en cualquier hoja de Excel que queramos.

  1. Primero, necesitamos abrir el editor de VBA. Podemos abrir fácilmente el editor de VBA pulsando los siguientes botones.

    Primero, mantendremos presionada la tecla ALT y luego presionaremos la tecla F11.

  2. Una vez abierto el editor de VBA, iremos a la opción Ver y seleccionaremos Explorador de proyectos. También podemos obtener el Explorador de proyectos en el lado izquierdo de la hoja de trabajo cuando ingresamos al modo de editor de VBA.

  3. Ahora, haremos clic con el botón derecho en el objeto en el que queremos ejecutar el código.

  4. Ahora, agregaremos un módulo a nuestra hoja de trabajo. Podemos agregar fácilmente el módulo a nuestra hoja de trabajo haciendo clic en Insertar y seleccionando Módulo.

  5. Copiaremos el código que queremos pegar y lo pegaremos. O, si queremos escribir el código allí, podemos hacerlo.

  6. Ejecutaremos el código manteniendo el cursor y presionando la tecla F5. También podemos ejecutar el código VBA haciendo clic en el triángulo verde presente en la barra de herramientas de VBA.

Artículo relacionado - VBA Row