Якщо я вас правильно зрозумів, задавши рядки 1 і 2, ви хочете видалити рядок 2 тоді і тільки тоді, коли A1 = A2, C1 = C2, D1 = D2, E1 = E2 і F1 = F2.
Це те, що я придумав. Можливо, це може бути коротше, але це спрацьовує:
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) And (ActiveSheet.Range(current).Offset(0, 4).Value = ActiveCell.Offset(0, 4).Value) And (ActiveSheet.Range(current).Offset(0, 5).Value = ActiveCell.Offset(0, 5).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
Що це роблять, це цикл через всі інші рядки, використовуючи ActiveCell як покажчик на оцінюваний рядок, і зберігає "оригінальну" клітинку рядка в струм змінної. Як тільки петля закінчується, клітина нижче струм активується і повторно починається внутрішній цикл оцінки.
Якщо я десь зіпсував, не соромтеся сказати мені:)