VBA Eliminar toda la fila o columna
In this Article
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