Я пытаюсь сравнить значения в столбце «А» на двух листах - исходном и целевом.
- Если значения совпадают - перезаписать всю строку в целевом
- Если значение не существует, добавьте новую строку после последней строки на листе назначения со строкой данных из исходного листа, соответствующей значению, которое не было найдено.
Код работает для перезаписи строки.
Я застрял с добавлением новой строки. Я попытался поместить Else в l oop, и он добавляет новую строку, но когда я снова запускаю макрос, он добавляет эту же строку снова после последней строки вместо перезаписи.
Dim source, desination As Worksheet
Dim lastrow, lastrow2 As Long
Set source = Sheets("Sheet2")
Set destination = Sheets("Sheet1")
lastrow = source.Cells(Rows.Count, 1).End(xlUp).Row
lastrow2 = destination.Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To lastrow
For i = 2 To lastrow2
If Trim(source.Cells(j, 1).Value2) = vbNullString Then Exit For
If destination.Cells(i, 1).Value = source.Cells(j, 1).Value Then
destination.Range("A" & i, "O" & i).Value = source.Range("A" & j, "O" & j).Value
Else
destination.Range("A" & lastrow2 + 1, "O" & lastrow2 + 1).Value = source.Range("A" & j,"O" & j).Value
End If
Next
Next