Я знаю, что этот вопрос задавался много раз, и я действительно искал и пытался решить его с данными решениями, но безрезультатно. Может быть, я делаю что-то не так, но я не знаю много о VBA, поэтому я не знаю точно, что не так. По сути, у меня есть значения, которые я ввожу в столбец E, и я хочу, чтобы временная метка автоматически обновлялась в столбце G после изменения соответствующего значения в E.

Я использовал следующий код с этого сайта http://www.mcgimpsey.com/excel/timestamp.html:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
            If .Count > 1 Then Exit Sub
            If Not Intersect(Range("A2:A10"), .Cells) Is Nothing Then
                Application.EnableEvents = False
                If IsEmpty(.Value) Then
                    .Offset(0, 1).ClearContents
                Else
                    With .Offset(0, 1)
                        .NumberFormat = "dd mmm yyyy hh:mm:ss"
                        .Value = Now
                    End With
                End If
                Application.EnableEvents = True
            End If
        End With
    End Sub

Я попытался изменить его, чтобы он соответствовал моему запросу, но когда я ввожу значение в столбец G, в столбце E. ничего не появляется. Может кто-нибудь объяснить, как я могу заставить эту работу работать?

Спасибо

1 ответ1

2

Ваш код отслеживает столбец A, ячейки с A2 по A10, а не столбец E. Он помещает отметку времени со смещением 1 в соответствующие ячейки в столбце B.

Если вы хотите отслеживать столбец E и ввести метку времени в столбце G, измените код на

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
            If .Count > 1 Then Exit Sub
            If Not Intersect(Range("E:E"), .Cells) Is Nothing Then
                Application.EnableEvents = False
                If IsEmpty(.Value) Then
                    .Offset(0, 2).ClearContents
                Else
                    With .Offset(0, 2)
                        .NumberFormat = "dd mmm yyyy hh:mm:ss"
                        .Value = Now
                    End With
                End If
                Application.EnableEvents = True
            End If
        End With
    End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .