Как автоматически фиксировать дату и время при изменении ячейки?
В повседневной работе с Excel вставка статических значений даты и времени вручную или использование формул для отображения динамической даты, обновляемой по системным часам, — задача достаточно простая. Однако если ваша цель — автоматически фиксировать точную дату и время при каждом изменении ячейки или вводе нового значения (то есть создавать временную метку правок), потребуется иной подход. Автоматические метки времени особенно полезны для отслеживания изменений в журналах данных, контроля обновлений в таблицах учёта заказов или фиксации ввода в совместных таблицах в целях аудита. Хотя Excel не предоставляет встроенной функции для записи временных меток при изменении значений, существует несколько практичных обходных решений. В этой статье вы найдёте различные методы — от написания кода на VBA до специальных формульных приёмов, — которые помогут реализовать автоматическую запись даты и времени при изменении содержимого ячеек.
Автоматическая запись даты и времени при изменении ячейки с помощью кода VBA
Автоматическая запись даты и времени при изменении ячейки с помощью кода VBA
Представьте, что у вас есть таблица данных, в которой нужно отслеживать обновления по мере их поступления. Например, текущие дата и время должны автоматически появляться в столбце C каждый раз, когда изменяется значение в столбце B или добавляется новая запись. Такой подход широко используется в журналах посещаемости, учёте запасов и других рабочих процессах, где фиксация времени изменений критически важна для отслеживания истории, обеспечения подотчётности и соблюдения нормативных требований.

Для автоматизации такого журналирования можно использовать простой макрос VBA, адаптированный под ваш лист. В отличие от ручного ввода меток времени, этот метод на основе VBA гарантирует фиксацию записи при каждом изменении — сокращая объём ручной работы и минимизируя ошибки из-за пропущенных записей. Однако имейте в виду: решения на основе VBA требуют, чтобы пользователь включил макросы и сохранил файл в формате, поддерживающем макросы ().xlsm), а код VBA будет работать только в средах, где разрешено использование макросов.
Выполните следующие шаги, чтобы реализовать функцию автоматической временной метки с помощью кода VBA:
1.Удерживая клавиши ALT + F11, откройте окно Microsoft Visual Basic для приложений.
2. В окне VBA выберите нужный лист в Обозревателе проектов слева. Дважды щёлкните по нему, чтобы открыть окно кода для этого листа. Затем скопируйте и вставьте следующий код VBA в пустую область модуля:
Код VBA: автоматическая запись даты и времени при изменении ячейки
Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20250722
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. После ввода кода сохраните изменения и закройте редактор VBA. Вернитесь к листу Excel. Теперь при каждом изменении или вводе новых данных в ячейку столбца B соседняя ячейка в столбце C будет автоматически обновляться текущей датой и временем.
Примечания и советы:
- Настройка столбца: Вы можете изменить столбец, в котором отслеживаются изменения, отредактировав строку Set WorkRng = Intersect(Application.ActiveSheet.Range(«B:B»), Target) в скрипте. Например, замените «B:B» на нужный вам столбец.
- Пояснение смещения столбца: Строка xOffsetColumn = 1 определяет, в какой столбец будет записано значение даты и времени. Изменение этого числа переместит метку времени правее относительно столбца с изменённым значением (например, 2 — через один столбец, 3 — через два и так далее).
- Поведение при удалении: Если значение в отслеживаемом столбце удаляется, соответствующая метка времени в соседней ячейке автоматически удаляется.
- Избегайте ошибок:Обязательно сохраните книгу в формате, поддерживающем макросы ()
.xlsm), и не забудьте включить макросы при открытии — иначе автоматическая метка времени работать не будет. - Напоминание о совместимости: Решения на основе VBA могут работать некорректно, если макросы отключены или при использовании некоторых облачных платформ Excel (например, Excel для Интернета).
Этот метод отличается высокой надёжностью для большинства пользователей настольной версии Excel и идеально подходит для наборов данных умеренного размера, где важны аудиторские следы. Если вам требуются временные метки, основанные на формулах или доступные без использования макросов, обратите внимание на подходы, описанные ниже.
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек