Если мое понимание верно в вашем вопросе выше ... Вы хотите создать пустую строку, выше ЛЮБЫХ значений, которые НЕ совпадают между двумя листами.
Исходя из этого и приведенного выше кода, выне слишком далеко от правильного пути.
Попробуйте следующий код ...
Private Sub compare_cells(ByVal Target1 As Range, ByVal Target2 As Range)
If Target1 Is Nothing Then Exit Sub
If Target2 Is Nothing Then Exit Sub
Dim ws1, ws2 As Worksheet
Set ws1 = Sheets(Target1.Parent.Name)
Set ws2 = Sheets(Target2.Parent.Name)
If Target1.Value <> Target2.Value Then
' If they don't match place your code here
ws1.Range(Target1.Row & ":" & Target1.Row).Insert Shift:=xlDown
ws2.Range(Target2.Row & ":" & Target2.Row).Insert Shift:=xlDown
End If
End Sub
Вы можете вызвать это, используя это в другом макросе ...
Call compare_cells(Sheets("Sheet1").Range("A1"), Sheets("Sheet2").Range("D1"))
Если вы используете вышеупомянутый макрос, то он будет сравнивать диапазон «A1» на листе 1 с диапазоном «D1» на листе 2. Если эти две ячейки не совпадают, то будет вставлена строкавыше как А1, так и D1.