VBA Eliminar fila o columna entera – Automatizar Excel

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

Eliminar fila o columna entera

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

Rows(1).Delete

Nota 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 Range con EntireRow:

Range("a1").EntireRow.Delete

Del mismo modo, para eliminar una columna entera, utilice estas líneas de código:

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

Borrar varias filas o columnas

Usando la misma lógica, también puedes borrar varias filas a la vez:

Rows("1:3").Delete

o columnas:

Columns("A:C").Delete

Nota que aquí referenciamos los números / letras de fila y columna específicos rodeados de comillas.

Por supuesto, también puede hacer referencia a la EntireRow de un rango:

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

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

Borrar filas en blanco / vacías

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

Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub

Hace uso de la función de hoja de cálculo 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 basado en el valor de la celda

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

Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub

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

Eliminar filas duplicadas

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

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

Nota que establecemos Columnas:=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 fila 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("Sheet1").ListObjects("list1").ListRows(2).Delete

Borrar filas filtradas

Para borrar sólo las filas visibles tras el filtrado:

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

Borrar filas del 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 última fila

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

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

Cambiando 2 por 1, se puede borrar la última fila utilizada 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, utilice un código como este:

Columns (2).Delete

Deja una respuesta

Tu dirección de correo electrónico no será publicada.