
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:
- Adicione uma nova coluna (digamos A)
- Defina a primeira linha (A1) como
True
- Defina a linha A2 como
=NOT(A1)
- Em seguida, arraste a linha A2 para baixo até todas as suas linhas.
Em seguida, aplique um filtro automático onde coluna A
está 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!