Я использую следующий код, который прекрасно работает. Однако изменения в ячейке, которая должна инициировать это событие, выполняются с использованием формулы, а не записи в ячейке. Если я введу запись, все будет работать. Но если я использую формулу для получения данных с другого листа, это не так. Например, ячейки в AD имеют формулы вида =HR!P27
.
что мне не хватает?
код:
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("AD:AD"), Target)
xOffsetColumn = -1
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each Rng In WorkRng
If Not VBA.IsEmpty(Rng.Value) Then
Rng.Offset(0, xOffsetColumn).Value = Now
Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
Else
Rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub