Дата последнего изменения в файлах Microsoft Excel — это метаданные, которые автоматически обновляются при каждом сохранении документа. Однако иногда требуется вручную откорректировать эту дату: для синхронизации с другими файлами, тестирования систем резервного копирования или восстановления корректной хронологии изменений после переноса данных. В отличие от даты создания, которую можно изменить только через сторонние утилиты, дату модификации в Excel можно редактировать несколькими способами — как встроенными инструментами, так и с помощью скриптов.
Важно понимать, что изменение даты модификации не влияет на содержимое файла — это чисто техническая операция. В некоторых случаях (например, при работе с SharePoint или корпоративными системами документооборота) такие действия могут нарушить логику версионирования. Поэтому перед редактированием рекомендуется создать резервную копию файла или использовать тестовый документ.
Почему Excel автоматически обновляет дату изменения
Файлы Excel (расширения .xlsx, .xlsm, .xlsb) хранят метаданные в формате Office Open XML. При каждом сохранении документа система записывает текущие дату и время в следующие поля:
- 📁 Дата изменения файла — отображается в проводнике Windows и свойствах документа. Обновляется при любом сохранении, включая автосохранение.
- 📊 Дата последнего изменения в Excel — внутреннее свойство, доступное через
Файл → Сведения → Свойства → Дополнительные свойства. - ⏱️ Время модификации в ZIP-архиве — так как
.xlsxявляется ZIP-контейнером, дата архива также обновляется.
Автоматическое обновление даты заложено в архитектуру Excel для:
- 🔄 Отслеживания актуальности данных (например, в Power Query или связках с Power BI).
- 📂 Синхронизации с облачными хранилищами (OneDrive, Google Drive).
- 🔍 Поиска по дате в проводнике Windows или Total Commander.
⚠️ Внимание: Если файл открыт в режиме Общий доступ (совместная работа), дата изменения может обновляться каждые 10-15 минут даже без явного сохранения — из-за фоновой синхронизации.
Способ 1: Изменение через свойства файла в Windows
Самый простой метод — редактирование даты непосредственно в свойствах файла. Он работает для всех версий Excel (2010–2026) и не требует установки дополнительного ПО. Однако у этого способа есть ограничение: дату можно установить только на текущую или прошлую, но не на будущую.
Инструкция:
- Закройте файл Excel, если он открыт.
- В проводнике Windows найдите нужный файл, кликните по нему правой кнопкой и выберите
Свойства. - Перейдите на вкладку
Общиеи найдите полеИзменён. - Нажмите на дату — появится возможность выбрать новую дату и время из календаря.
- Подтвердите изменения кнопкой
ОК.
Этот метод изменяет только дату в свойствах файла, но не затрагивает внутренние метаданные Excel. Например, если открыть файл и перейти в Файл → Сведения, там может отображаться оригинальная дата.
Закрыть файл Excel
Сделать резервную копию
Проверить права доступа к файлу
Отключить автосохранение в Excel (если включено)-->
Способ 2: Редактирование через PowerShell (для опытных пользователей)
Скрипты PowerShell позволяют точно установить любую дату изменения, включая будущие значения. Этот метод полезен для пакетной обработки файлов или автоматизации задач. Например, если нужно привести даты модификации сотен файлов к единому формату.
Инструкция:
- Откройте PowerShell от имени администратора (нажмите
Win + Xи выберитеWindows PowerShell (администратор)). - Введите команду (замените путь и дату на свои):
(Get-Item "C:\Путь\к\файлу.xlsx").LastWriteTime = "01.01.2023 14:30:00" - Для проверки результата выполните:
Get-Item "C:\Путь\к\файлу.xlsx" | Select-Object LastWriteTime
Преимущества метода:
- 🔧 Точность до секунды.
- 📁 Возможность обработать несколько файлов за раз (используйте цикл
foreach). - 🖥️ Работает даже для заблокированных файлов (при запуске от администратора).
⚠️ Внимание: Если файл хранится в OneDrive или SharePoint, изменённая через PowerShell дата может сброситься при следующей синхронизации. В этом случае требуется отключить облачное хранилище перед редактированием.
Через свойства файла
PowerShell
VBA-скрипты
Сторонние утилиты
Не изменяю дату-->
Способ 3: Использование VBA-макроса для внутренней даты Excel
Если нужно изменить не только дату файла в проводнике, но и внутреннюю дату последнего изменения в метаданных Excel, потребуется VBA-скрипт. Этот метод редактирует свойства документа, которые отображаются в Файл → Сведения → Свойства.
Инструкция:
- Откройте файл Excel и нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте новый модуль:
Insert → Module. - Скопируйте следующий код:
Sub ChangeLastModifiedDate()Dim doc As DocumentProperty
On Error Resume Next
Set doc = ThisWorkbook.BuiltinDocumentProperties("Last Save Time")
If Not doc Is Nothing Then
doc.Value = #1/15/2023 2:30:00 PM# ' Замените на нужную дату
End If
ThisWorkbook.Save
End Sub
- Запустите макрос клавишей
F5.
Обратите внимание:
- 📅 Формат даты в коде — американский (
MM/DD/YYYY). Для российского формата используйте#15.01.2023 14:30:00#. - 🔄 После выполнения макроса файл сохраняется автоматически, что обновляет дату в проводнике. Чтобы этого избежать, удалите строку
ThisWorkbook.Save. - 🚫 Макрос не работает для файлов, открытых в режиме
Только для чтения.
Как проверить, изменилась ли внутренняя дата?
Откройте файл Excel → Файл → Сведения → Свойства → Дополнительные свойства → вкладка "Статистика". Поле "Время изменения" должно отображать новую дату.
Способ 4: Сторонние утилиты для массового редактирования
Если нужно изменить даты для десятков или сотен файлов, ручные методы неэффективны. В этом случае помогут специализированные программы:
| Утилита | Поддержка Excel | Массовое редактирование | Бесплатная версия |
|---|---|---|---|
| BulkFileChanger | Да (все форматы) | Да (папки и подпапки) | Да |
| Attribute Changer | Да | Да | Условно-бесплатная |
| PowerToys (File Locksmith) | Частично | Нет | Да |
| ExifTool | Да (через командную строку) | Да | Да |
Пример работы с BulkFileChanger:
- Скачайте утилиту с официального сайта NirSoft.
- Добавьте файлы в программу через
File → Add Filesили перетащите папку. - Выберите действие
Change Time/Filename→Change Time and Attributes. - Установите новую дату в формате
DD/MM/YYYY HH:MM:SS. - Нажмите
Do Itдля применения изменений.
⚠️ Внимание: Некоторые антивирусы (например, Avast или Kaspersky) могут блокировать утилиты вроде BulkFileChanger как "подозрительное ПО". Это ложное срабатывание — добавьте программу в исключения.
Способ 5: Редактирование ZIP-структуры файла Excel
Файлы Excel (начиная с форматов .xlsx/.xlsm) представляют собой ZIP-архивы с XML-данными. Это означает, что дату модификации можно изменить, распаковав файл, отредактировав служебные файлы и заново запаковав его. Метод подходит для продвинутых пользователей и требует аккуратности.
Пошаговая инструкция:
- Переименуйте файл
document.xlsxвdocument.zip. - Распакуйте архив в отдельную папку (например, с помощью 7-Zip или WinRAR).
- Откройте файл
./docProps/core.xmlв текстовом редакторе (например, Notepad++). - Найдите теги:
<dcterms:modified xsi:type="dcterms:W3CDTF">2023-10-15T14:30:00Z</dcterms:modified>и измените дату на нужную (формат
YYYY-MM-DDTHH:MM:SSZ). - Сохраните изменения и заново запакуйте папку в
document.zip. - Переименуйте обратно в
document.xlsx.
Предупреждения:
- 🔍 Неправильное редактирование
core.xmlможет привести к повреждению файла. - 📦 Если архив запакован с другим уровнем сжатия, Excel может не открыть файл. Используйте настройки сжатия
Хранить(без сжатия). - 🔄 Дата в проводнике Windows при этом методе не изменится — только внутренние метаданные.
Частые ошибки и как их избежать
При изменении даты модификации файлов Excel пользователи часто сталкиваются с типичными проблемами:
| Ошибка | Причина | Решение |
|---|---|---|
| Дата сбрасывается после сохранения | Файл открыт в режиме совместного доступа или автосохранение включено | Отключите Файл → Параметры → Сохранение → Автосохранение и сохраните файл вручную |
| VBA-макрос не работает | Отсутствует доступ к объекту BuiltinDocumentProperties |
Включите доверенный доступ к VBA: Файл → Параметры → Центр управления безопасностью → Параметры центра → Включить все макросы |
| PowerShell выдаёт ошибку "Отказано в доступе" | Файл заблокирован процессом Excel или антивирусом | Закройте все экземпляры Excel и временно отключите антивирус |
| Утилита не видит файлы в облаке | OneDrive/Google Диск синхронизируют файлы в фоновом режиме | Скачайте файл локально, отключите синхронизацию, измените дату, затем загрузите обратно |
Дополнительные нюансы:
- 🔄 Если файл связан с другими книгами (
Внешние ссылки), изменение даты может привести к ошибкам обновления данных. - 📊 В файлах с Power Pivot или Power Query дата модификации может обновляться при обновлении моделей данных, даже если вы не сохраняли файл явно.
- 🔒 Для файлов, защищённых паролем, сначала требуется снять защиту (через
Рецензирование → Снять защиту листа/книги).
FAQ: Ответы на частые вопросы
Можно ли изменить дату создания файла Excel?
Нет, дату создания (Date Created) изменить стандартными средствами Windows или Excel невозможно. Для этого требуются специализированные утилиты вроде Attribute Changer или редактирование MFT (Master File Table) на уровне файловой системы, что рискованно для целостности данных.
Почему после изменения даты через свойства файла в Excel отображается старая дата?
Это происходит потому, что вы изменили только дату в проводнике Windows, но не внутренние метаданные Excel. Чтобы синхронизировать обе даты, используйте VBA-макрос (Способ 3) или редактирование core.xml (Способ 5).
Будет ли работать макрос для изменения даты в Excel Online?
Нет, Excel Online не поддерживает выполнение VBA-скриптов. Для облачных файлов используйте PowerShell (Способ 2) или скачайте файл локально, измените дату, а затем загрузите обратно.
Можно ли откатить изменения даты, если я ошибся?
Если у вас есть резервная копия файла — да. В противном случае восстановить оригинальную дату невозможно, так как она перезаписывается. Для критичных файлов рекомендуется использовать систему контроля версий (например, Git для .xlsx через GitExcel).
Влияет ли изменение даты на работу формул или макросов?
Нет, дата модификации — это метаданные, не связанные с логикой вычислений. Однако если в ваших формулах используются функции вроде FILEMODDATE() (в BAK-надстройках), они могут вернуть некорректные значения.