У меня есть таблица с несколькими дубликатами (логин) для идентификатора.Мне нужно удалить дубликаты до последнего входа в систему, как в примере ниже.
У меня есть следующая таблица:
Id Status Date
A Log in 01.01.2018 01:44:03
A Log out 01.01.2018 02:57:03
C Log in 01.01.2018 01:55:03
C Log in 01.01.2018 01:59:03
C Log in 01.01.2018 01:59:03
D Log in 01.01.2018 01:59:03
E Log in 01.01.2018 01:59:03
E Log out 01.01.2018 01:59:03
Таблица должна выглядеть следующим образом:
Id Status Date
A Log in 01.01.2018 01:44:03
A Log out 01.01.2018 02:57:03
E Log in 01.01.2018 01:59:03
E Log out 01.01.2018 01:59:03
Чтобы сделать это, я попытался использовать следующий код.Проблема в том, что он удалит дубликаты, но первый логин для идентификатора останется, а не последний.Если я начну цикл «for» с последней ячейки до первой, все будет в порядке, но это невозможно (удалить дубликаты в противоположном направлении).Любая идея, как я могу это исправить?Спасибо!* Идентификатор D удален, поскольку после входа в систему должен быть выполнен выход из системы.
Sub RemoveDuplicates()
Dim xRow As Long
Dim xCol As Long
Dim x2Row As Long
Dim x2Col As Long
Dim xrg As Range
Dim xrg2 As Range
Dim xl As Long
Dim x2 As Long
Set xrg = Application.InputBox("Select a range:", "Kutools for Excel", _
ActiveWindow.RangeSelection.AddressLocal, , , , , 8)
Set xrg2 = Application.InputBox("Select a range:", "Kutools for Excel", _
ActiveWindow.RangeSelection.AddressLocal, , , , , 8)
xRow = xrg.Rows.Count + xrg.Row - 1
x2Row = xrg2.Rows.Count + xrg2.Row - 1
xCol = xrg.Column
x2Col = xrg2.Column
'MsgBox xRow & ":" & xCol
Application.ScreenUpdating = False
For xl = xRow To 2 Step -1
If Cells(xl, xCol) = Cells(xl - 1, xCol) Then
If Cells(xl, x2Col) = Cells(xl - 1, x2Col) Then
Cells(xl, xCol) = ""
Cells(xl, x2Col) = ""
End If
End If
Next xl