Trava de demorar para executar ou trava de dar erro?
quantas linhas são?
Se o problema for apenas demora, isso é natural pois a rotina percorre linha a linha da planilha diversas vezes. Quanto mais linhas houver mais verificações serão feitas.
Fiz um teste com 300 linhas e demorou algo em torno de 32 segundos para concluir.
Fiz uma adaptação no código para adicionar uma mensagem ao final da rotina e traz também o tempo que levou para finaliza-lo. Se tiver interesse segue abaixo:
Option Explicit
Sub Verificar_e_apagar()
Dim ul, ul2, i, j, contagem, lin_ini As Long
Dim cel As Variant
Dim verif_col As String
Dim Temp_ini As Date
Application.ScreenUpdating = False
verif_col = "A" 'COLUNA A VERIFICAR
lin_ini = 2 'LINHA INICIAL DOS DADOS
Temp_ini = Time
inicio:
contagem = 0
ul = Plan1.Range(verif_col & Rows.Count).End(xlUp).Row
For i = lin_ini To ul
ul2 = Plan1.Range(verif_col & Rows.Count).End(xlUp).Row
For j = ul2 To lin_ini Step -1
Select Case Plan1.Range(verif_col & j).Value
Case Is = Plan1.Range(verif_col & i).Value * -1 _
And Plan1.Range(verif_col & j).Address <> Plan1.Range(verif_col & i).Address
Plan1.Range(verif_col & j).EntireRow.Delete
Plan1.Range(verif_col & i).EntireRow.Delete
End Select
Next j
Next i
Application.ScreenUpdating = True
MsgBox "Feito!" & vbNewLine & "Tempo de execução: " & WorksheetFunction.Text(Time - Temp_ini, "HH:MM:SS"), vbInformation
End Sub
___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].
Att.
André Arruda
Postado : 05/10/2018 8:01 am