¿Cómo puedo eliminar varias filas específicas en Excel?

¿Cómo puedo eliminar varias filas específicas en Excel?

Tengo cinco hojas en un documento. La primera hoja tiene las filas que contienen valores en la primera columna. Necesito eliminar todas esas filas del resto de las hojas que tienen el mismo valor en la primera columna que coincide con el valor de la primera columna de la primera hoja. El problema es que se supone que deben eliminarse una gran cantidad de registros con diferentes valores de columna. ¿Cómo puedo buscar todas esas filas que contienen los valores de la primera hoja (o en común a la primera hoja) y eliminarlas?

Respuesta1

Revisar cada valor en la columna A de la Hoja 1 y usar ese valor para filtrar las 4 hojas de trabajo restantes debería brindarle los resultados que está buscando.

Sub remove_from_2_to_5()
    Dim var As Variant, w As Long, rw As Long

    With Sheets(1)
        For rw = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            If Not IsEmpty(.Cells(rw, 1)) Then
                var = .Cells(rw, 1).Value
                For w = 2 To 5
                    With Sheets(w).Cells(1, 1).CurrentRegion
                        .AutoFilter
                        .AutoFilter field:=1, Criteria1:=var
                        With .Offset(1, 0).Resize(.Rows.Count, .Columns.Count)
                            If CBool(Application.Subtotal(103, .Columns(1))) Then
                                .SpecialCells(xlCellTypeVisible).EntireRow.Delete
                            End If
                        End With
                        .AutoFilter
                    End With
                Next w
            End If
        Next rw
    End With

End Sub

A medida que el primer bucle For/Siguiente desciende por la columna A de la Hoja1, registra el valor que encuentra. Esto se utiliza en cada una de las hojas de trabajo restantes como criterio en una .AutoFilteroperación. Si se muestran celdas después de aplicar el filtro, las filas se eliminan.

Respuesta2

Inserte una columna en cada hoja para verificar si el valor de la primera columna aparece en la primera hoja: =iferror(match(a2,sheet1!a:a,0)>0,false)
obtendrá truelas filas que tienen la primera columna en la primera hoja, las filtrará y las eliminará.
Si tiene varias hojas y necesita una solución aún más rápida, entonces necesita una macro.

información relacionada