Ваш код определяет следующую строку в столбце A рабочего листа назначения: lastrow2 = wksDest.Cells (Rows.Count, 1) .End (xlUp) .Offset (1,0) .Row. Но вы вставляете в столбцы E и F. Поэтому последняя строка в столбце A не изменяется, и это приводит к перезаписи.
Я переписал ваш код, чтобы сделать его более прозрачным. Я думаю, что этот вид синтаксиса облегчит вам обнаружение ошибок, подобных той, о которой вы спрашивали. Установка может занять немного больше времени, но время потрачено не зря.
Sub AppendData()
Dim wksSource As Worksheet ' Source sheet
Dim wksTarget As Worksheet ' Target sheet
Dim Source1 As Range
Dim Target As Range
Dim Rl As Long ' last row
Set wksSource = Workbooks("2021 Tracker.xlsm").Worksheets("Sheet3")
With wksSource
Rl = .Cells(.Rows.Count, "A").End(xlUp).Row
Set Source = .Range(.Cells(2, "A"), .Cells(Rl, "B"))
End With
Set wksTarget = Workbooks("Jan Tracker).xlsm").Worksheets("Sheet1")
With wksTarget
Set Target = .Cells(.Rows.Count, "E").End(xlUp).Offset(1)
End With
Source.Copy Deestination:=Target
Application.CutCopyMode = False
End Sub