Я новичок в VBA, поэтому код, который я написал, очень небрежный. Мои извенения.
Суть моей проблемы в том, что мне нужно удалить дубликаты строк с листа ок. 45 000 строк. Каждая итерация, где удаляется строка, занимает около 30 секунд, и мне нужно сделать это для тысяч строк. Любые предложения о том, как улучшить мой код, чтобы все это прошло быстрее?
Sub delete_duplicate_rows()
For i = 1 To 85000
If ActiveCell <> ActiveCell.Offset(1, 0) Or ActiveCell.Offset(0, -1) <> ActiveCell.Offset(1, -1) Or ActiveCell.Offset(0, 1) <> ActiveCell.Offset(1, 1) Or ActiveCell.Offset(0, 2) <> ActiveCell.Offset(1, 2) Or ActiveCell.Offset(0, 3) <> ActiveCell.Offset(1, 3) Or ActiveCell.Offset(0, 4) <> ActiveCell.Offset(1, 4) Or ActiveCell.Offset(0, 5) <> ActiveCell.Offset(1, 5) Or ActiveCell.Offset(0, 6) <> ActiveCell.Offset(1, 6) Or ActiveCell.Offset(0, 7) <> ActiveCell.Offset(1, 7) Or ActiveCell.Offset(0, 8) <> ActiveCell.Offset(1, 8) Or ActiveCell.Offset(0, 9) <> ActiveCell.Offset(1, 9) Or ActiveCell.Offset(0, 10) <> ActiveCell.Offset(1, 10) Or ActiveCell.Offset(0, 11) <> ActiveCell.Offset(1, 11) Or ActiveCell.Offset(0, 12) <> ActiveCell.Offset(1, 12) Or ActiveCell.Offset(0, 13) <> ActiveCell.Offset(1, 13) Then
ActiveCell.Offset(1, 0).Select
GoTo NextIteration
Else
End If
If ActiveCell.Value = "" Then Exit Sub
ActiveCell.Offset(0, -1).Range("A1:Q1").Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(0, 1).Range("A1").Select
NextIteration:
Next i
End Sub
Большое спасибо.