Необходимо удалить дубликаты на основе значений соседних ячеек

Удалить дубликаты на основе значений соседних ячеек с помощью VBA

ID | Статус

1234 | Не начато - необходимо удалить

1234 | Завершен

3456 | Завершен

3456 | Завершено - Требуется удалить

1
0
24
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Учитывая ваши образцы данных, все, что вам нужно сделать, это отсортировать по второму столбцу в возрастающем порядке, а затем использовать Удалить дубликаты.

Option Explicit

Sub sortNdedupe()

    With Worksheets("sheet4")
        With .Range(.Cells(1, "A"), .Cells(.Rows.Count, "B").End(xlUp))
            .Cells.Sort Key1:=.Columns(2), Order1:=xlAscending, _
                        Header:=xlYes
            .RemoveDuplicates Columns:=1, Header:=xlYes
        End With
    End With
End Sub
Ответ принят как подходящий

Выберите, какой из двух методов вам больше нравится, и попробуйте:

Sub Removeduplicates()

Dim Lastrow As Long

With Worksheets("sheet1")

    Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row

    'Remove based on based on ID
    With .Range("A1" & ":B" & Lastrow)
        .Removeduplicates Columns:=1, Header:=xlYes
    End With
    'Remove based on ID and Status
    With .Range("A1" & ":B" & Lastrow)
        .Removeduplicates Columns:=Array(1, 2), Header:=xlYes
    End With

End With

End Sub

Другие вопросы по теме