Как автоматически записывать дату и время при изменении ячейки?
Нам легко вручную вставить статическую дату и время или вставить динамическую дату, которая меняется вместе с системным временем, используя формулу. Если вы хотите автоматически записывать дату и время при изменении или вводе значений, эта задача может быть немного сложнее для решения. Однако в этой статье вы сможете выполнить эту задачу, следуя указанным шагам.
Автоматическая запись даты и времени при изменении ячейки с помощью кода VBA
Автоматическая запись даты и времени при изменении ячейки с помощью кода VBA
Например, у меня есть диапазон значений, и теперь, когда я изменяю или ввожу новые значения в столбце B, я хочу, чтобы автоматически записывалась текущая дата и время в столбец C, как показано на следующем скриншоте:
Вы можете выполнить эту задачу с помощью следующего кода VBA. Пожалуйста, действуйте так:
1. Нажмите и удерживайте клавиши ALT + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. Затем выберите используемый лист из левого обозревателя проектов, дважды щелкните его, чтобы открыть модуль, и затем скопируйте и вставьте следующий код VBA в пустой модуль:
Код VBA: Автоматическая запись даты и времени при изменении ячейки
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("B:B"), 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
3. Затем сохраните и закройте этот код, чтобы вернуться к листу. Теперь, когда вы измените значение ячейки или введете новые данные в столбец B, дата и время будут автоматически записаны в столбец C.
Примечания:
1. В приведенном выше коде вы можете изменить «B:B» на любой другой столбец, в котором вы хотите изменить значения ячеек в этом скрипте: Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target).
2. С помощью этого скрипта xOffsetColumn = 1 вы можете вставлять и обновлять дату и время в первый столбец рядом с вашим столбцом изменяемых значений. Вы можете изменить число 1 на другие числа, такие как 2,3,4,5… Это означает, что дата будет вставлена во второй, третий, четвертый или пятый столбец рядом со столбцом измененных значений.
3. Когда вы удаляете значение в изменяемом столбце, дата и время также будут удалены.
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!