Como excluir todas as outras linhas no Excel 2007

Como excluir todas as outras linhas no Excel 2007

Tenho uma planilha ordenada por um id e uma célula calculada. Classifico a planilha pelo ID e pela célula calculada, obtendo assim pares de linhas relacionadas. Quero simplesmente excluir a segunda linha de cada par na planilha inteira. Normalmente existem cerca de 3.000 linhas.

Existe uma maneira fácil de excluir ou mover a segunda linha para outra planilha?

Responder1

Não é uma resposta de programação, já que você disse que não estava familiarizado com o VBA no Excel, mas se for único, basta fazê-lo no Excel:

  1. Adicione uma nova coluna (digamos A)
  2. Defina a primeira linha (A1) comoTrue
  3. Defina a linha A2 como=NOT(A1)
  4. Em seguida, arraste a linha A2 para baixo até todas as suas linhas.

Em seguida, aplique um filtro automático onde coluna Aestá false, selecione todas as linhas retornadas e exclua-as e, em seguida, remova o filtro.

Responder2

Se esta for uma tarefa única, use a resposta de Seph. Se precisar ser repetido, use VBA, assim:

Sub DemoDeleteAlternateRows()
    Dim iRow As Long, LastRow As Long
    Dim sh As Worksheet
    Set sh = ActiveSheet ' <-- Maybe change this to refer to a specific sheet
    Application.FindFormat.Clear ' Just in case Find was last used with a Format
    LastRow = sh.Cells.Find(What:="*", After:=sh.Cells(1, 1), _
      SearchDirection:=xlPrevious, SearchOrder:=xlByRows, SearchFormat:=False).Row
    For iRow = LastRow To 1 Step -1
        ' Delete even numberede rows (to delete odd numbered
        ' rows, instead use  If iRow Mod 2 = 1 Then).
        If iRow Mod 2 = 0 Then
            sh.Rows(iRow).Delete
        End If
    Next
End Sub

Certifique-se de fazer backup antes de executarqualquermacro em sua planilha. Macros não usam Desfazer!

informação relacionada