это 2007 эксель
grooogler, проблемма у тебя в том, что алгоритм не удачный и выполняется два раза.
добавь еще одну колонку с единичками - получится вообще непонятно что
PS Этот код сравнивает любое количество колонок на точное совпадение листа2 с со строкой на листе1 и данные листа1 скидываются соответственно на 3 и 4 листы. т.е если на листе2 будет строка отсутствующая на листе1 то она вообще ни куда не попадет
Код:
Sub Main2()
Sheets(3).Cells.ClearContents:
Sheets(4).Cells.ClearContents:
Sheets(3).Activate
i = 1
i3 = 1
i4 = 1
Do While Not IsEmpty(Sheets(1).Cells(i, 1).Value)
j = 1
Sheets(1).Rows(i).Copy Sheets(3).Rows(i3)
Sheets(1).Rows(i).Copy Sheets(4).Rows(i4)
ok2 = 0
Do While Not IsEmpty(Sheets(2).Cells(j, 1).Value)
ok = 0
For ii = 1 To Sheets(1).Cells(i, Columns.Count).End(xlToLeft).Column
If Sheets(1).Cells(i, ii).Value = Sheets(2).Cells(j, ii).Value Then
ok = ok + 1
End If
Next
If ok = Sheets(1).Cells(i, Columns.Count).End(xlToLeft).Column Then
'совпадение
Sheets(4).Select
Rows(i4).Delete
i3 = i3 + 1
ok2 = 0
Exit Do
Else
'нет совпадения
ok2 = ok2 + 1
End If
j = j + 1
Loop
If ok2 = Sheets(2).Cells(1, Columns.Count).End(xlToLeft).Column Then
Sheets(3).Select
Rows(i3).Delete
i4 = i4 + 1
End If
i = i + 1
Loop
End Sub