Как вставить текущую метку времени при изменении значения ячейки в зависимости от содержимого ячейки - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть раскрывающийся список в столбце B, и я хочу записать временные метки изменений, внесенных в этот столбец, на основе различных опций, доступных в раскрывающемся списке, и извлечь эту временную метку в разные столбцы

Пользователь можетвыберите из списка, и у меня есть макрос, который вводит метку времени любого внесенного изменения.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20180830
Dim xCellColumn As Integer
Dim xTimeColumn As Integer
Dim xRow, xCol As Integer
Dim xDPRg, xRg As Range
xCellColumn = 3
xTimeColumn = 
xRow = Target.Row
xCol = Target.Column
If Target.Text <> "" Then
    If xCol = xCellColumn Then
       Cells(xRow, xTimeColumn) = Now()
    Else
        On Error Resume Next
        Set xDPRg = Target.Dependents
        For Each xRg In xDPRg
            If xRg.Column = xCellColumn Then
                Cells(xRg.Row, xTimeColumn) = Now()
            End If
        Next
        End If
    End If
End Sub

Я ищу способ изменить его, чтобы, когда пользователь выбирает метку времени «В процессе», она сохранялась встолбец D, позже эта ячейка может быть изменена на «Закрыто», а временная метка должна быть представлена ​​в столбце E (соответствующая строка), но значение столбца D останется прежним.

Я хочу отследить временную метку статусаменяется.

1 Ответ

1 голос
/ 30 сентября 2019

Вы можете использовать переключатель для каждого из ваших выходов, чтобы определить столбец (c), основанный на вашем событии изменения, такой что:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Columns(2)) Is Nothing Then Exit Sub
    dim r as long, c as long
    r = target.row
    select case lcase(target.value)
        case "in-progess"
            c = 4
        case "closed"
            c = 5
        case else
            c = 0
    end select
    if c > 0 then cells(r,c).value = now()
end sub

непроверенный код

...