Cómo Eliminar Filas Usando VBA (14 Formas)

  • Compartir Este
Hugh West

Si está buscando alguna de las formas más sencillas de eliminar filas utilizando VBA está usted en el lugar adecuado.

Entremos de lleno en el artículo principal.

Descargar el cuaderno de ejercicios

VBA Eliminar Fila.xlsm

14 Maneras de Borrar Filas Usando VBA

Aquí, tengo las tres tablas de datos para mostrar las formas de eliminar filas utilizando VBA La primera tabla contiene algunos Productos de una empresa y su Tallas , Precios .

El segundo tiene algunos Códigos de productos y sus correspondientes Tamaños de los productos y Precios

Y el último contiene algunos Nombres de proyectos y sus respectivos Fechas de inicio y Costes .

Para crear el artículo, he utilizado Microsoft Excel 365 puede utilizar cualquier otra versión según le convenga.

Método-1: Eliminar una sola fila utilizando VBA

Supongamos que desea eliminar la fila que contiene Producto Zapato 1, y para borrar esta única fila puedes seguir este método.

Paso-01 :

➤Ir a Desarrollador Tab>> Visual Basic Opción

Entonces, el Editor de Visual Basic se abrirá.

➤Ir a Inserte Tab>> Módulo Opción

Después de eso, un Módulo se creará.

Paso-02 :

➤Escribe el siguiente código

 Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub 

Toma, "Soltero" es el nombre de la hoja de cálculo, y Filas(7) seleccionará el número de fila.

.FilaEntera.Suprimir borrará toda la fila 7.

➤Prensa F5

Resultado :

De esta forma, eliminará la fila que contiene el Producto nombre Zapato 1 .

Más información: Cómo eliminar filas en Excel: 7 métodos

Método-2: Eliminar Varias Filas Usando VBA

Si desea eliminar varias filas, como las filas que contienen los caracteres Producto nombres Zapato1 , Zapato2, y Zapato3 entonces puede seguir esto VBA código.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub 

Aquí, los números de fila 13, 10 y 7 serán borrados y al escribir en serie los números de fila tienes que escribir desde el último número de fila hasta el número de la primera fila como este código.

De lo contrario, después de borrar la primera fila como la Fila 7, las filas restantes debajo de esta fila se moverán una fila hacia arriba y así la Fila 10 será la Fila 9, y la Fila 13 será la Fila 12. Por esta razón, no podrá borrar las filas correctas.

➤Prensa F5

Resultado :

A continuación, eliminará las filas que contengan el Producto nombres Zapato 1 , Zapato2, y Zapato3 .

Más información: Cómo eliminar varias filas en Excel (3 métodos)

Método 3: Borrar una fila seleccionando

Aquí mostraré la forma de eliminar una fila con respecto a una celda activa de esa fila.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Eliminará la fila que tenga una celda activa.

➤Guarda el código.

Paso-02 :

➤Seleccione cualquier celda de una fila que desee eliminar ( Aquí he seleccionado la celda B7 )

➤Ir a Desarrollador Tab>> Macros Opción

Después, el Macro Se abrirá el asistente.

➤Seleccione el Nombre de la macro dltrow3 y pulse Ejecutar

Resultado :

A continuación, borrará la fila que contiene el archivo Producto nombre Zapato 1 .

Método 4: Borrar todas las filas de la selección

Para borrar todas las filas de una selección puede seguir este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Eliminará todas las filas de la selección.

➤Guarda el código.

Paso-02 :

➤Seleccione el rango de filas que desea eliminar (Aquí, he seleccionado el rango B7:D9 )

➤Ir a Desarrollador Tab>> Macros Opción

Después, el Macro Se abrirá el asistente.

➤Seleccione el Nombre de la macro dltrow4 y pulse Ejecutar

Resultado :

A continuación, eliminará las filas que contengan el Producto nombres Zapato 1 , Chaqueta1, y Chaqueta2 .

Más información: Cómo Eliminar Filas Seleccionadas en Excel(8 Enfoques)

Método-5: Borrar una fila si alguna celda está vacía

Aquí, tengo una celda vacía que es B9 (he eliminado el valor de esta celda para este método), y utilizando un VBA borraré la fila que tiene B9 celda.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

Eliminará todas las filas del rango "B5:D13" tener alguna celda en blanco.

➤Prensa F5

Resultado :

A continuación, podrá eliminar la fila que contiene la celda en blanco.

Más información: Cómo eliminar filas vacías en Excel (11 métodos)

Método 6: Eliminar una fila si toda la fila está vacía

Aquí, tengo una celda vacía que es B9 (he eliminado los valores de este método), y una fila vacía que es la Fila 12 (he eliminado los valores de este método), y utilizando un método VBA y el código Función COUNTA Borraré la fila que está vacía.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" es el intervalo de datos y PARA funcionará para cada celda de este rango.

CountA(cell.EntireRow) devolverá el número de celdas que no están en blanco y cuando sea 0 se eliminará la fila.

➤Prensa F5

Resultado :

Después de esto, podrá borrar la fila vacía pero no borrará ninguna fila que no tenga todas las celdas de esta fila vacías.

Más información: Cómo utilizar VBA para eliminar filas vacías en Excel

Método 7: Borrar cada enésima fila

Puede eliminar cada enésima fila (en este caso cada tercera fila) siguiendo este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete Next i End Sub 

"B5:D13" es el intervalo de datos y rc devolverá el número total de filas de este rango que es 9 .

Aquí, el PARA comenzará desde la última fila, que es rc o 9 en este caso y termina con la primera fila.

Paso -3 ayudará a eliminar cada Tercero fila en este rango.

➤Prensa F5

Resultado :

A continuación, eliminará las filas que contengan el Producto nombres Zapato 1 , Zapato2, y Zapato3 .

Más información: Cómo Eliminar Cada Enésima Fila en Excel (Las 6 Formas Más Fáciles)

Lecturas similares:

  • Cómo eliminar filas seleccionadas con Excel VBA (Una guía paso a paso)
  • Eliminar filas no utilizadas en Excel (8 maneras fáciles)
  • Cómo eliminar filas ocultas en Excel (3 métodos)
  • Borrar Filas Infinitas en Excel (5 Maneras Fáciles)
  • Cómo eliminar filas en Excel que se eternizan (4 formas sencillas)

Método-8: Borrar Fila Basado en el Valor de la Celda

En este método, voy a eliminar la fila que tiene un valor específico Camisa 2 .

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" es el intervalo de datos y el PARA funcionará para cada celda de este rango.

Si alguna celda de una fila contiene el valor "Camisa 2" se eliminará la fila.

➤Prensa F5

Resultado :

De este modo, eliminará la fila que contiene el Producto nombre Camisa 2 .

Más información: Macro VBA para Eliminar Fila si Celda Contiene Valor en Excel (2 Métodos)

Método-9: Eliminar filas duplicadas

Aquí, tengo dos filas que tienen un Código del producto 97375 y por eso quiero borrar una de estas filas que están marcadas con un recuadro rojo abajo.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub 

Toma, "B5:D13" es el intervalo de datos y Columnas:=1 significa que buscará valores duplicados sólo en una columna, que es la columna inicial. Columna B pero si quieres buscar también en otras columnas puedes utilizar este número según tus necesidades.

➤Prensa F5

Resultado :

Después, podrá eliminar la fila que sea similar a otra fila.

Más información: Cómo eliminar filas duplicadas en Excel con VBA (8 maneras eficaces)

Método-10: Borrar filas de una tabla

Supongamos que tiene la siguiente tabla cuyo nombre es Tabla 1 y ahora quieres borrar la Fila número 6 de esta tabla. Para ello puedes seguir este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub 

Toma, "Mesa" es el nombre de la hoja, "Tabla1" es el nombre de la tabla y 6 es el número de fila de esta tabla que desea eliminar.

➤Prensa F5

Resultado :

De este modo, eliminará la fila que desee de esta tabla.

Más información: Cómo Eliminar Filas Duplicadas Basadas en una Columna Usando Excel VBA

Método-11: Eliminación de filas visibles después del filtrado

Aquí, tengo una tabla de datos que se filtra por el Precio para valores superiores a $1,500.00 y quiero borrar todas las filas visibles después de filtrar.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub 

Toma, "B5:D13" es el intervalo de datos.

➤Prensa F5

Ahora, todas las filas visibles tras el filtrado se eliminarán. Ahora puede recuperar las filas ocultas seleccionando el botón Filtro signo en el Precio columna.

➤Haga clic en el botón Seleccionar todo opción

➤Prensa OK

Resultado :

Finalmente, volverá a tener las filas ocultas en la tabla de datos.

Más información: Cómo filtrar y eliminar filas con VBA en Excel (2 métodos)

Método-12: Borrar fila en función de la última celda activa

Aquí, mi última celda activa es la celda B13 y quiero borrar esto teniendo la última celda activa de la siguiente tabla de datos.

Paso-01 :

➤Seguir Paso-01 de Método 1

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

Toma, 2 significa Columna B en el que tengo mi móvil activo, puedes cambiar el número según tus necesidades.

➤Prensa F5

Resultado :

De este modo, borrará la última fila activa.

Más información: Código VBA de Excel para Eliminar Filas Basado en el Valor de Varias Celdas (3 Criterios)

Método-13: Borrado de Filas con cualquier Cadena

Supongamos que desea eliminar las filas que tienen cualquier cadena, y para ello puede seguir este método.

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*",LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub 

Toma, "cadena" es el nombre de la hoja, el número de la primera fila de este rango de datos es 5 y el número de columna inicial es 2

En Con le permite especificar un objeto o tipo definido por el usuario una vez para toda una serie de sentencias.

En caso de error Reanudar siguiente especifica que, cuando se produce un error en tiempo de ejecución, el control pasa a la sentencia siguiente a la sentencia en la que se produce el error.

Última fila y ÚltimaColumna devuelve la última fila y columna del rango de datos.

SpecialCells(xlCellTypeConstants, xlTextValues) seleccionará las filas que tengan cualquier valor de texto en el rango.

➤Prensa F5

Resultado :

Después, borrará las filas que tengan cualquier cadena de texto.

Más información: Método abreviado de Excel para eliminar filas (con técnicas adicionales)

Método-14: Borrar Fila Basada en Fechas

Aquí, voy a eliminar las filas que tienen una fecha especial 11/12/2021 (mm/dd/aaaa) en este método utilizando la función Función DATEVALUE .

Paso-01 :

➤Seguir Paso-01 de Método 1

 Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End If End WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

Toma, "Fecha" es el nombre de la hoja, el número de la primera fila de este rango de datos es 5 y el número de la columna de criterios (qué columna tiene fechas) es 3 .

En Con le permite especificar un objeto o tipo definido por el usuario una vez para toda una serie de sentencias.

En caso de error Reanudar siguiente especifica que, cuando se produce un error en tiempo de ejecución, el control pasa a la sentencia siguiente a la sentencia en la que se produce el error.

Última fila devuelve la última fila del intervalo de datos y aquí, la función PARA comenzará desde la última fila, que es Última fila o 6 en este caso, y termina con la primera fila.

DATEVALUE convertirá la fecha de texto en valor.

Toma, Unión devolverá la unión de múltiples rangos correspondientes a las celdas que tengan la fecha 11/12/2021 y, por último, se eliminarán los rangos.

➤Prensa F5

Resultado :

A continuación, eliminará las filas que tengan una fecha determinada de 11/12/2021 .

Contenido relacionado: Excel VBA para Eliminar Filas con Datos Específicos (9 Ejemplos)

Sección práctica

Para hacer prácticas por su cuenta hemos proporcionado un Práctica en una hoja denominada Práctica Por favor, hazlo tú mismo.

Conclusión

En este artículo, he tratado de cubrir las formas más fáciles de utilizar VBA Efectivamente para borrar filas. Espero que te sea útil. Si tienes alguna sugerencia o pregunta, no dudes en compartirla en la sección de comentarios.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.