Я долго искал, но так и не нашел ответа, поэтому решил написать.

Я не могу написать никаких кодов, но я попытался использовать следующее:

Sub DeleteDuplicate()
Dim current As String
ActiveSheet.Range("A1").Activate
Do While ActiveCell.Value <> ""
    current = ActiveCell.Address
    ActiveCell.Offset(1, 0).Activate
    Do While ActiveCell.Value <> ""
    If (ActiveSheet.Range(current).Value = ActiveCell.Value) And     (ActiveSheet.Range(current).Offset(0, 2).Value = ActiveCell.Offset(0, 2).Value) And (ActiveSheet.Range(current).Offset(0, 3).Value = ActiveCell.Offset(0, 3).Value) Then
        ActiveSheet.Rows(ActiveCell.Row).Delete
    Else
    ActiveCell.Offset(1, 0).Activate
    End If
    Loop
    ActiveSheet.Range(current).Offset(1, 0).Activate
Loop
End Sub

По сути, используя приведенный выше пример, он предназначен для того, чтобы пройти по всем строкам вниз по столбцам, и если есть одинаковые целые строки, один из дубликатов удаляется.

Я хотел бы знать, есть ли лучший способ сделать это, когда вместо 3 столбцов есть около 18 столбцов и 10000 строк.

1 ответ1

1

Не нужно заново изобретать колесо.

Данные> Удалить дубликаты> Выберите столбцы для сравнения> ОК

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .