Я пытаюсь создать функцию, которая будет возвращать дату (и время) последнего обновления ячейки в указанном диапазоне.
Например, я хочу иметь возможность набирать в ячейке (например, A8) что-то вроде:
= ModDate (A1: A7)
и результат для отображения в A8 даты последнего обновления ячейки в указанном диапазоне (A1: A7). Он также должен обновляться при изменении ячейки в этом диапазоне A1: A7.
Пока что я немного покопался на этом сайте и нашел подпрограмму, которая будет делать это, однако, когда она запускается, она не позволяет пользователям листа (другим людям, с которыми я работаю) отменять действия.
Следующий код поместит метку времени, которую я хочу, в столбец 6, когда обновится значение ячейки в столбце слева в той же строке:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rInt As Range
Dim rCell As Range
Dim tCell As Range
Dim tColInt As Integer
tColInt = 6 'Column Index, Example: A=1, B=2, ...... ,Z=26
Set rInt = Intersect(Target, Range("A2:D43415")) 'Change cell range
If Not rInt Is Nothing Then
For Each rCell In rInt
Set tCell = Cells(rCell.Cells.Row, tColInt)
If IsEmpty(tCell) Or Not IsEmpty(tCell) Then
tCell = Now
tCell.NumberFormat = "dd/mm/yyyy h:mm:ss AM/PM" 'Custom Format
End If
Next
End If
End Sub
(это любезно предоставлено Asela Jayathissa в отдельном потоке stackoverflow)
Я довольно новичок в VBA, и я пытался преобразовать это в требуемую функцию, описанную выше, но не могу понять, как это сделать. Буду очень признателен за любую помощь, которую может оказать кто-либо.
Большое спасибо