VBA Eliminar toda la fila o columna

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 19, 2022

Este tutorial demostrará diferentes maneras de eliminar filas y columnas en Excel usando VBA.

Borrar una fila o columna completa

Para eliminar una fila entera en VBA utilice esta línea de código:

Rows(1).Delete

Observe que utilizamos el método Delete para eliminar una fila.

En lugar de hacer referencia al Objeto Rows, puede hacer referencia a las filas basándose en su Objeto de rango con EntireRow:

Range("a1").EntireRow.Delete

De forma similar, para eliminar una columna entera, utilice estas líneas de código

Columns(1).Delete
Range("a1").EntireColumn.Delete

Eliminar varias filas o columnas

Utilizando la misma lógica, también puede eliminar varias filas a la vez:

Rows("1:3").Delete

o columnas:

Columns("A:C").Delete

Observe que aquí hacemos referencia a los números / letras de las filas y columnas específicas rodeadas de comillas.

Por supuesto, también se puede hacer referencia a la fila completa de un rango:

Range("A1:A10").EntireRow.Delete

Nota: Los siguientes ejemplos sólo demuestran la eliminación de filas, sin embargo, como puede ver arriba, la sintaxis es prácticamente idéntica para eliminar columnas.

Borrar filas vacías o en blanco

Este ejemplo borrará una fila si toda la fila está en blanco:

Sub DeleteRows_EntireRowBlank()
 
Dim celda As Range
 
For Each celda In Range("B2:B20")
    If Application.WorksheetFunction.CountA(celda.EntireRow) = 0 Then
        celda.EntireRow.Delete
    End If
Next celda
 
End Sub

En el ejemplo de arriba, se usa la función WorksheetFunction de Excel COUNTA.

Borrar fila si la celda está en blanco

Esto borrará una fila si una columna específica de esa fila está en blanco  (en este caso la columna B):

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Borrar Fila Basada en el Valor de la Celda

Esto hará un bucle a través de un rango, y eliminará filas si un determinado valor de celda en esa fila dice «eliminar».

Sub EliminarFilasConValorEspecifico()

Dim celda As Range

For Each celda In Range("b2:b20")
    If celda.Value = "delete" Then
        celda.EntireRow.Delete
    End If
Next celda

End Sub

Más ejemplos de eliminación de filas y columnas

Borrar Filas Duplicadas

Este código eliminará todas las filas duplicadas de un rango:

Range("b2:c100").RemoveDuplicates Columns:=2

Fíjese en que ponemos Columns:=2. Esto le dice a VBA que compruebe las dos primeras columnas de datos cuando considere si las filas son duplicadas. Sólo se encuentra un duplicado cuando ambas columnas tienen valores duplicados.

Si hubiéramos establecido esto en 1, sólo se habría comprobado la primera columna en busca de valores duplicados.

Borrar filas de la tabla

Este código borrará la segunda fila de una Tabla haciendo referencia a ListObjects.

ThisWorkbook.Sheets("hoja1").ListObjects("lista1").ListRows(2).Delete

Eliminar filas filtradas

Para eliminar sólo las filas que son visibles después del filtrado:

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Borrar filas en el rango

Este código borrará todas las filas del rango:

Range("a1:a10").EntireRow.Delete

Borrar filas seleccionadas

Este código borrará todas las filas seleccionadas:

Selection.EntireRow.Delete

Borrar la última fila

Esto borrará la última fila utilizada en la columna B:

Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete

Cambiando 2 a 1, puedes borrar la última fila usada en la columna A, etc:

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

Borrar Columnas por Número

Para borrar una columna por su número, usa un código como este:

Columns(2).Delete
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples