Здравей,
Закъснял отговор, но нещо такова би трябвало да ти свърши работа:
Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow As Integer
Dim LastColumn As Integer
'Find the last row's number
LastRow = Worksheets("Sheet2").Cells(ActiveSheet.Rows.Count, "A").End(xlUp).row
MsgBox (LastRow)
'Set last column's number
LastColumn = 5 'Column E
'Counter
Dim i As Integer
i = 1
Sheets("Sheet1").Select
'Check if there is a change in Range A1:D1
If Not Intersect(Target, Target.Worksheet.Range("A1:D1")) Is Nothing Then
'Loop Through the columns
For i = 1 To LastColumn
'Copy data from Sheet1 to the next empty row in Sheet2
Worksheets("Sheet2").Cells(LastRow + 1, i).Value = Worksheets("Sheet1").Cells(1, i).Value
Next
End If
End Sub
Макрото запаметява всеки направен опит за изчисление / всяка операция на нов ред.
За да работи кода трябва да го сложиш не в модул, а в Sheet1 на VBA едитора, също така трябва шийтовете да са със съответните имена.