Добрый вечер. Есть рабочий макрос
выводящий текущую дату в соседний столбец при изменении значения ячейки пользователем.
Проблема в том, что он не работает, если значение в ячейке изменяется формулой, а не вводится вручную.
Например если в MI2 указать =MH2, то при изменении значения в MH2 дата в MJ2 не напечатается.
Что нужно поправить в макросе, чтобы он работал с отображаемым результатом, а не с вводимым значением?
| Код |
|---|
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("MI2:MI20"), 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
|
Проблема в том, что он не работает, если значение в ячейке изменяется формулой, а не вводится вручную.
Например если в MI2 указать =MH2, то при изменении значения в MH2 дата в MJ2 не напечатается.
Что нужно поправить в макросе, чтобы он работал с отображаемым результатом, а не с вводимым значением?