Eliminar o insertar filas según el valor de la celda

Este tutorial demostrará cómo eliminar o insertar filas según los valores de las celdas.

Eliminar fila según el valor de la celda

Esto recorrerá un rango y eliminará filas si la columna A dice "eliminar".

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Declarar variablesAtenuar LastRow tan largo, FirstRow tan largoDim Row tan largoCon ActiveSheet'Definir primera y última filaPrimera fila = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Bucle a través de filas (de abajo hacia arriba)For Row = LastRow to FirstRow Paso -1Si .Range ("A" & Row) .Value = "delete" Entonces.Range ("A" & Fila) .EntireRow.DeleteTerminara siFila siguienteTerminar conEnd Sub

Debemos comenzar el ciclo con la fila inferior porque eliminar una fila desplazará los datos, omitiendo filas si realiza un ciclo de arriba hacia abajo.

Además, observe que en lugar de ingresar manualmente en la última fila, calculamos la última fila utilizada.

Eliminar fila: según el filtro

En el ejemplo anterior, recorrimos las filas, eliminando cada fila que cumple con los criterios. Alternativamente, podemos usar el Autofiltro de Excel para filtrar filas según algunos criterios y luego eliminar las filas visibles:

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows ()'Declarar la variable wsDim ws como hoja de trabajoEstablecer ws = ActiveSheet'Restablecer filtros existentesEn caso de error, reanudar siguientews.ShowAllDataEn caso de error, vaya a 0'Aplicar filtrows.Range ("a1: d100"). Campo de autofiltro: = 1, Criterio1: = "eliminar"'Eliminar filasApplication.DisplayAlerts = Falsows.Range ("a1: d100"). SpecialCells (xlCellTypeVisible) .DeleteApplication.DisplayAlerts = True'Filtro claroEn caso de error, reanudar siguientews.ShowAllDataEn caso de error, vaya a 0End Sub

Eliminar fila según criterios de celda

Esto recorrerá un rango, eliminando filas si la celda en la columna A cumple con ciertos criterios (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Declarar variablesAtenuar LastRow tan largo, FirstRow tan largoDim Row tan largoCon ActiveSheet'Definir primera y última filaPrimera fila = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Bucle a través de filas (de abajo hacia arriba)For Row = LastRow to FirstRow Paso -1Si .Range ("A" & Row) .Value <0 Entonces.Range ("A" & Fila) .EntireRow.DeleteTerminara siFila siguienteTerminar conEnd Sub

Programación VBA | ¡Code Generator funciona para usted!

Eliminar fila si la celda está en blanco

Esto recorrerá un rango, eliminando una fila si una celda en la columna A está en blanco:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Declarar variablesAtenuar LastRow tan largo, FirstRow tan largoDim Row tan largoCon ActiveSheet'Definir primera y última filaPrimera fila = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Bucle a través de filas (de abajo hacia arriba)For Row = LastRow to FirstRow Paso -1Si .Range ("A" & Row) .Value = "" Entonces.Range ("A" & Fila) .EntireRow.DeleteTerminara siFila siguienteTerminar conEnd Sub

Eliminar fila en blanco

Alternativamente, si desea eliminar una fila si toda la fila está en blanco (haga clic en el enlace para un método ligeramente diferente), puede usar este código:

1234567891011121314151617181920 Sub DeleteBlankRows ()'Declarar variablesAtenuar LastRow tan largo, FirstRow tan largoDim Row tan largoCon ActiveSheet'Definir primera y última filaPrimera fila = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Bucle a través de filas (de abajo hacia arriba)For Row = LastRow to FirstRow Paso -1Si WorksheetFunction.CountA (.Rows (Row)) = 0 Entonces.Rows (Fila) .EntireRow.DeleteTerminara siFila siguienteTerminar conEnd Sub

Eliminar fila si la celda contiene valor

Esto recorrerá un rango, eliminando una fila si la celda en la columna A no está en blanco:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Declarar variablesAtenuar LastRow tan largo, FirstRow tan largoDim Row tan largoCon ActiveSheet'Definir primera y última filaPrimera fila = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Bucle a través de filas (de abajo hacia arriba)For Row = LastRow to FirstRow Paso -1Si .Range ("A" & Row) .Value "" Entonces.Range ("A" & Fila) .EntireRow.DeleteTerminara siFila siguienteTerminar conEnd Sub

¿Cansado de buscar ejemplos de código VBA? ¡Prueba AutoMacro!

Insertar fila según el valor de la celda

Esto recorrerá un rango, insertando filas si una determinada celda en esa fila dice "insertar":

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()'Declarar variablesAtenuar LastRow tan largo, FirstRow tan largoDim Row tan largoCon ActiveSheet'Definir primera y última filaPrimera fila = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Bucle a través de filas (de abajo hacia arriba)For Row = LastRow to FirstRow Paso -1Si .Range ("A" & Row) .Value = "insert" Entonces.Rango ("A" & Fila) .EntireRow.InsertTerminara siFila siguienteTerminar conEnd Sub
wave wave wave wave wave