Saltar al contenido

Cómo eliminar filas con VBA

Cómo eliminar filas con VBA

¿Por qué querrías eliminar una fila?

Las filas son las capas de datos horizontales (que también pueden estar vacías) en cada tabla. Las hojas de trabajo en MS Excel en realidad se consideran todas mesas† En MS Word, las tablas se pueden insertar en documentos para su propio uso.

Las filas están disponibles para que las manipulemos en ambas aplicaciones host mediante VBA. Cuando necesitamos eliminar filas vacías o filas de datos antiguos de las tablas, podemos usar él . Utilizar Borrar fila función disponible en el menú contextual. Esta misma función también la ofrece VBA.

Eliminar una fila de una tabla en un documento de Word

Empleando índices, primero debemos referirnos a la tabla. Luego podemos emplear el índice en otro momento para hacer referencia a la fila que se eliminará.

Por ejemplo, si sumamos el 3 . tengo que borrar fila de los 2 tablas en un documento de Word, podemos utilizar el siguiente código.

Tables.Item(2).Rows(3).Delete

Para obtener más información sobre este método, consulte este artículo:

Eliminar una fila de una hoja de trabajo en MS Excel

Eliminar fila manualmente

Si queremos eliminar una fila manualmente, simplemente podemos seleccionarla, hacer clic derecho y seleccionar el elemento de menú «eliminar» del menú contextual. Esta acción elimina la fila seleccionada.

Eliminar fila manualmente en Excel

No hay nada más fácil que eso.

Eliminar fila con VBA

Hay muchas formas de eliminar una fila con VBA. Puede implementar un código simple para hacer el trabajo ahora mismo o crear un complemento perfecto que cualquiera pueda utilizar en cualquier momento. Aquí hay algunas maneras posibles en que podemos eliminar filas con código VBA.

Método 1 – Filas.Eliminar

Abra la hoja de trabajo donde desea eliminar filas. Abra el módulo VBA, escriba el código a continuación y ejecútelo.

Sub row_deletion_demo()
Rows(2).Delete
End Sub 

Esto puede eliminar la segunda fila en la hoja de trabajo abierta.

Método 2: seleccionar y eliminar

Aquí, la hoja de trabajo se abrirá como en el método 1. El código se divide en dos partes. La primera línea selecciona la fila y la segunda línea elimina todo lo seleccionado.

Este código luego selecciona y elimina la primera fila en la hoja de trabajo abierta.

Sub row_deletion_demo()
Rows(5).Select
Selection.Delete
End Sub

Método 3: abre automáticamente la hoja de trabajo primero

A diferencia de los dos métodos anteriores, no es necesario abrir la hoja de trabajo manualmente, ya que puede automatizarla con el siguiente código.

Sheets("Wonders").Select

Esta línea de código debe insertarse en el módulo antes de seleccionar y eliminar las filas.

Método 4: selección y eliminación simultáneas

Aquí hay una sola línea de código que puede eliminar la fila especificada directamente sin siquiera abrir la hoja de trabajo. Esto puede eliminar 2 líneas de código o su esfuerzo manual en comparación con los métodos anteriores.

Sub row_deletion_demo()
Sheets("Wonders").Rows(5).Delete
End Sub

Método 5: seleccione un rango

Este método comienza nuevamente al seleccionar la hoja de trabajo, las filas y luego eliminar. Pero se seleccionan varias filas continuas en lugar de una.

Sub row_deletion_demo()
Sheets("Wonders").Select
Rows("5:7").Select
Selection.Delete
End Sub

Y aquí hay una sola línea de código para lograr lo mismo:

Sheets("Wonders").Rows("5:7").Delete

Método 6: eliminar ActiveCell

El siguiente código selecciona toda la fila a la que pertenece una celda activa preseleccionada. Luego, la segunda línea elimina la fila seleccionada.

Sub row_deletion_demo()
ActiveCell.EntireRow.Select
Selection.Delete
End Sub

Programas de muestra

Eliminar filas si la primera columna está vacía

Sub row_deletion_demo()

Rows = InputBox (" Enter the number of rows to be checked for ")

    ' loop to iterate through rows
    For i = 1 To Rows
    
        ' check if the first column is blank
        If Sheets("Wonders").Cells(i, 1).Value = "" Then
            ' delete that row if first column of the row is blank
            Rows(i).Delete
        End If
    
    Next
End Sub

Eliminar una fila si está completamente vacía

Sub row_deletion_demo()

Dim range1

' loop to iterate through
For i = 1 To 20
    ' get the range of row
    Set range1 = Worksheets("Wonders").Rows(i & ":" & i)
    
    ' find the number of blank columns in that row
    filledcols = Application.WorksheetFunction.CountA(range1)
    
    ' delete the row if all columns in it are blank
   If filledcols = 0 Then
        Sheets("Wonders").Rows(i).Delete
    End If
Next

End Sub

Conclusión

Aunque puede ser fácil eliminar filas manualmente, VBA viene a nuestro rescate cuando queremos eliminar varias filas rotas, como en nuestros programas de muestra. Al mismo tiempo, debe recordar que cualquier tarea que se realice a través de un programa VBA no se puede revertir. Se requiere esfuerzo manual para rehacerlo o revertirlo.

Es fácil eliminar filas, pero es difícil volver a crearlas. Por lo tanto, verifique la lógica del programa y asegúrese de lo que está haciendo antes de ejecutar el código de la macro.