Saltar al contenido

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.

    Su Calificación Nos Ayuda a Mejorar