Вот краткий фрагмент, который поможет вам начать работу и даст вам кое-что для поиска. Этот код будет наблюдать за ячейкой A1 и, если он изменится, запишет время, которое он изменит, и значение, которое он займет после изменения в строке 3. Это, вероятно, потребует дополнительной логики, чтобы быть полезным. Код входит в код VBA для листа, который меняется.
Private Sub Worksheet_Change(ByVal Target As Range)
'WatchedCell is the cell we want to log changes of, I used cell A1
Dim WatchedCell As Range
Set WatchedCell = Application.ActiveSheet.Range("A1")
'Target comes from the Worksheet_Change event and tells us what changed in the event
'See if the watched cell is among the cells which changed
Dim Inter As Range
Set Inter = Intersect(WatchedCell, Target)
'Insert a row to record the time in the column A and the value after the change in column B
If Not Inter Is Nothing Then
Rows(3).EntireRow.Insert
Application.ActiveSheet.Range("A3") = Now()
Application.ActiveSheet.Range("B3") = WatchedCell
End If
End Sub
Одна важная проблема (подразумеваемая учеником Гэри в комментариях к вашему вопросу) заключается в том, что если, например, ячейка A1 является формулой и изменяется только при изменении ячейки A2, событие Worksheet_Change не распознает A1 как изменившееся при изменении A2, поскольку это изменилось из-за события Worksheet_Calculate.