Olá!
O problema que você está enfrentando pode ser resultado do funcionamento da macro gravada, que pode estar interpretando erroneamente as células a serem excluídas. Quando você grava uma macro, ela segue os passos exatos que você fez, e qualquer pequena mudança pode afetar o resultado final.
Para resolver o problema de eliminar apenas as linhas em branco sem tocar nos dados duplicados, recomendo usar um código VBA específico em vez de uma macro gravada. Aqui está um exemplo de como você pode fazer isso:
ALT + F11
para abrir o Editor do VBA.Inserir
e depois Módulo
para criar um novo módulo.```vba Sub EliminarLinhasEmBranco() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("NomeDaSuaPlanilha") ' Substitua "NomeDaSuaPlanilha" pelo nome real da sua planilha
Dim ultimaLinha As Long
ultimaLinha = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Considera a coluna A, ajuste se necessário
Dim i As Long
For i = ultimaLinha To 1 Step -1
If Application.WorksheetFunction.CountA(ws.Rows(i)) = 0 Then
ws.Rows(i).Delete
End If
Next i
End Sub ```
"NomeDaSuaPlanilha"
pelo nome real da sua planilha e ajuste a coluna ("A" no exemplo) conforme necessário para cobrir toda a área que você quer verificar.ALT + F8
, selecione EliminarLinhasEmBranco
e clique em Executar
.Este código percorre a planilha de baixo para cima (evitando problemas de indexação ao excluir linhas) e verifica se a linha está completamente em branco. Se estiver, a linha será excluída. Assim, ele não deve impactar dados duplicados, apenas linhas vazias.
Espero que isso resolva o seu problema! Se tiver mais dúvidas, sinta-se à vontade para perguntar.