Como posso excluir várias linhas específicas no excel?

0

Eu tenho cinco folhas em um documento. Primeira folha tem as linhas que contém valores na primeira coluna. Eu preciso excluir todas as linhas do restante das folhas que tem o mesmo valor na primeira coluna que corresponde ao valor da primeira coluna da primeira folha. O problema é a quantidade de registros com diferentes valores de colunas que devem ser excluídos. Como posso pesquisar todas as linhas que contêm os valores da primeira folha (ou em comum à primeira folha) e excluí-la?

    
por Shaonline 19.04.2015 / 20:46

2 respostas

0

Percorrer cada valor na coluna A da Folha1 e usar esse valor para filtrar as 4 planilhas restantes deve fornecer os resultados que você está procurando.

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

Quando o primeiro loop For / Next entra na coluna A da Sheet1, ele registra o valor encontrado. Isso é usado em cada uma das planilhas restantes como os critérios em uma operação .AutoFilter . Se houver células mostrando após o filtro ter sido aplicado, as linhas serão excluídas.

    
por 19.04.2015 / 21:24
0

Insira uma coluna em cada folha para verificar se o valor na primeira coluna ocorre na primeira folha: =iferror(match(a2,sheet1!a:a,0)>0,false)
Você obterá true nas linhas com a primeira coluna ocorrendo na primeira planilha, filtrará e excluirá as linhas.
Se você tiver várias folhas e precisar de uma solução ainda mais rápida, precisará de uma macro.

    
por 19.04.2015 / 21:49