Если я вас правильно понял, учитывая строки 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 в качестве указателя на оцениваемую строку и сохраняя «оригинальную» ячейку строки в текущей переменной. Как только цикл заканчивается, ячейка ниже тока активируется, и внутренний цикл оценки запускается снова.
Если я что-то напутал, не стесняйтесь, сообщите мне :)