Excel VBA Script для удаления самых последних дублирующихся записей - PullRequest
0 голосов
/ 17 августа 2010

Рабочий лист сортируется сначала по столбцу A (номер счета), а затем по столбцу C (дата).

У меня ниже скрипт, который удаляет дубликаты записей и остается самым последним.

Sub DeleteTheOldies()  
Dim RowNdx As Long  
For RowNdx = Range("a1").End(xlDown).Row To 2 Step -1  
Do While Cells(RowNdx, "a").Value = Cells(RowNdx - 1, "a").Value  
If Cells(RowNdx, "c").Value <= Cells(RowNdx - 1, "c").Value Then  
Rows(RowNdx).Delete  
Else  
Rows(RowNdx - 1).Delete  
End If  
RowNdx = RowNdx - 1  
If RowNdx = 1 Then Exit Sub  
Loop  
Next RowNdx  
End Sub  

Пример данных:

Column A     Column B   Column C  
751063031 1605621498 03-JUL-10  
751063031 5600003138 18-JUL-10  
751063031 5600084443 17-AUG-10  
754199715 1605621498 27-FEB-10  
754199715 5600084438 17-AUG-10  
757129104 5600084892 12-NOV-09  
757129104 5600084438 17-AUG-10  
757307416 1605621498 27-FEB-10  
757307416 5600084438 17-AUG-10  

Вывод текущего скрипта:

751063031 5600084443 17-AUG-10  
754199715 5600084438 17-AUG-10  
757129104 5600084438 17-AUG-10  
757307416 5600084438 17-AUG-10  

Мне нужна модифицированная версия скрипта, чтобы вывести следующие данные (удалить самую последнюю и оставить остальные)

751063031 1605621498 03-JUL-10  
751063031 5600003138 18-JUL-10  
754199715 1605621498 27-FEB-10  
757129104 5600084892 12-NOV-09  
757307416 1605621498 27-FEB-10    

1 Ответ

0 голосов
/ 18 августа 2010

Попробуйте следующее.Это будет работать с вашим примером выше.Если у вас есть дополнительные ограничения / требования, возможно, их необходимо скорректировать.

Sub NewStuff()

    Dim RowNdx As Long
    Dim CurVal As String

    For RowNdx = 1 To Range("a1").End(xlDown)

        If Cells(RowNdx, "a").Value = Empty Then

            Exit For

        End If

        If Cells(RowNdx, "a").Value <> Cells(RowNdx + 1, "a").Value Then

            Rows(RowNdx).Delete
            RowNdx = RowNdx - 1

        End If

    Next RowNdx

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...