Дата создания файла Excel — это метаданные, которые автоматически фиксируются операционной системой при первом сохранении документа. Однако иногда требуется изменить эту дату: для корректной сортировки архивов, восстановления хронологии версий или тестирования скриптов, зависящих от временных меток. В отличие от даты изменения (которую Excel обновляет при каждом сохранении), дату создания модифицировать стандартными средствами программы нельзя — потребуются обходные пути.
В этой статье разберём 5 рабочих методов: от встроенных инструментов Windows до скриптов на VBA и PowerShell. Каждый способ протестирован на актуальных версиях Microsoft Excel 2019–2026 и Office 365, а также совместим с форматами .xlsx и .xls. Особое внимание уделим нюансам, которые могут привести к потере данных или сбоям — их часто упускают в упрощённых инструкциях.
⚠️ Важно: Изменение даты создания файла не влияет на его содержимое, но может нарушить работу макросов, ссылающихся на системное время через функции вроде FILEDATE() или Now(). Всегда создавайте резервную копию перед экспериментами!
1. Изменение даты через свойства файла (без сторонних программ)
Самый простой способ — редактировать метаданные через проводник Windows. Он не требует установки дополнительного ПО, но имеет ограничения: дату создания (Created) изменить нельзя, зато доступна для редактирования дата изменения (Modified). Это подойдёт, если вам нужно "освежить" файл в глазах системы.
Инструкция:
- 📁 Откройте папку с файлом Excel, кликните по нему правой кнопкой и выберите Свойства.
- ⏳ Перейдите на вкладку Подробно (в Windows 11 она может называться Детали).
- 📅 В разделе Дата изменения нажмите на значение и введите новую дату в формате
ДД.ММ.ГГГГ. - ✅ Нажмите ОК — система обновит метку времени.
⚠️ Внимание: Этот метод не изменяет дату создания (Created), а только дату последней модификации. Для полного контроля над временными метками потребуются другие инструменты.
2. Использование PowerShell для изменения даты создания
PowerShell — мощный инструмент автоматизации в Windows, позволяющий редактировать системные атрибуты файлов, включая дату создания. Метод подходит для пакетной обработки нескольких файлов Excel.
Шаги для изменения даты:
- Запустите PowerShell от имени администратора (клик правой кнопкой по значку → Запуск от имени администратора).
- Введите команду, заменив пути и дату на свои:
(Get-Item "C:\Путь\к\файлу.xlsx").CreationTime = "01.01.2023 12:00:00" - Для проверки результата выполните:
Get-Item "C:\Путь\к\файлу.xlsx" | Select-Object CreationTime
🔹 Преимущества метода: работает без установки ПО, поддерживает массовое изменение (через цикл ForEach).
🔸 Недостатки: требует прав администратора, ошибки в синтаксисе могут привести к сбоям.
Проверьте путь к файлу (используйте двойные кавычки, если в пути есть пробелы)
Убедитесь, что дата указана в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС
Запустите PowerShell от имени администратора
Создайте резервную копию файла-->
3. Редактирование даты с помощью VBA-макроса
Если вам нужно изменить дату создания прямо из Excel, можно написать макрос на VBA. Этот способ удобен для автоматизации, но имеет ограничение: VBA не может напрямую редактировать дату создания файла (это системный атрибут). Вместо этого макрос создаст копию файла с новой меткой времени.
Код макроса для копирования файла с новой датой:
Sub ChangeFileCreationDate()
Dim originalPath As String, newPath As String
Dim newDate As Date
originalPath = "C:\Путь\к\оригинальному_файлу.xlsx"
newPath = "C:\Путь\к\новому_файлу.xlsx"
newDate = #1/1/2023# ' Укажите нужную дату
FileCopy originalPath, newPath
SetAttr newPath, vbNormal ' Снимаем атрибут "только для чтения"
' Далее используем Windows API для изменения даты создания (требуется дополнительный код)
' Полный код с API см. в спойлере ниже
End Sub
🔧 Для полноценного изменения даты создания потребуется подключить функции Windows API через Declare Function. Это сложный процесс, поэтому мы вынесли его в отдельный блок:
Полный VBA-код с Windows API для изменения даты создания
' Подключаем API-функции
Private Declare PtrSafe Function CreateFile Lib "kernel32" Alias "CreateFileA" _
(ByVal lpFileName As String, ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, _
ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long
Private Declare PtrSafe Function SetFileTime Lib "kernel32" _
(ByVal hFile As Long, lpCreationTime As FILETIME, _
lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
Private Declare PtrSafe Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
' Функция для преобразования даты в FILETIME
Private Function SystemTimeToFileTime(st As SYSTEMTIME, ft As FILETIME) As Boolean
' Реализация через API вызовов (упрощено)
End Function
' Основная процедура
Sub SetFileCreationDate(filePath As String, newDate As Date)
Dim hFile As Long
Dim creationTime As FILETIME
' Преобразуем дату и устанавливаем через SetFileTime
' ... (полный код требует дополнительных API-вызовов)
End Sub
⚠️ Внимание: Использование Windows API в VBA требует знаний программирования. Ошибки в коде могут привести к краху Excel или потере данных. Тестируйте макрос на копиях файлов!
4. Сторонние утилиты для массового изменения дат
Если нужно обработать десятки файлов или требуется гибкость в настройках, проще воспользоваться специализированными программами. Вот топ-3 утилиты с поддержкой русского языка:
| Программа | Поддерживаемые форматы | Особенности | Стоимость |
|---|---|---|---|
| BulkFileChanger | XLS, XLSX, DOCX, PDF и др. | Пакетная обработка, изменение Created/Modified/Accessed | Бесплатно |
| Attribute Changer | Любые файлы | Интеграция в контекстное меню проводника | Бесплатно |
| Advanced Renamer | XLSX, CSV, TXT | Поддержка регулярных выражений, шаблонов дат | Условно-бесплатно |
📌 Как работать с BulkFileChanger:
- Скачайте программу с официального сайта NirSoft (проверено на вирусы).
- Добавьте файлы Excel через
File → Add Filesили перетащите их в окно программы. - Выберите действие
Change Time/Created Timeи укажите новую дату. - Нажмите Do It — дата будет изменена без пересохранения файла.
5. Особенности изменения даты на macOS
На компьютерах Mac процесс отличается из-за другой файловой системы (APFS/HFS+). Здесь нельзя напрямую редактировать дату создания через Finder, но можно использовать Terminal или утилиту SetFile.
Инструкция для Terminal:
- Откройте Terminal (через Spotlight или папку
Утилиты). - Введите команду:
SetFile -d "01/01/2023 12:00:00" /Путь/к/файлу.xlsxгде
-dустанавливает дату создания. - Для проверки выполните:
GetFileInfo /Путь/к/файлу.xlsx
🍎 Важно для macOS:
- 📁 Пути к файлам указывайте с учётом регистра (в отличие от Windows, здесь
/Документыи/документы— разные папки). - 🔄 Утилита SetFile входит в стандартный набор Xcode Command Line Tools. Если команда не найдена, установите их через
xcode-select --install. - 🔒 Для системных файлов потребуются права sudo.
6. Риски и последствия изменения даты создания
Казалось бы, что плохого в изменении метаданных? Однако это может привести к неожиданным проблемам:
⚠️ Внимание: Если файл Excel связан с другими документами через
Внешние ссылки(например,=[Книга1.xlsx]Лист1!A1), изменение даты создания может сбить механизм кэширования. Excel перестанет распознавать файл как "обновлённый" и не пересчитает формулы автоматически.
Другие потенциальные проблемы:
- 🔗 Облачные сервисы: OneDrive, Google Диск или Dropbox могут восстановить оригинальную дату при синхронизации, если включена история версий.
- 📊 Power Query: Запросы, зависящие от даты создания файла (например,
File.Contents("C:\Data\" & Text.From(DateTime.LocalNow()) & ".xlsx")), перестанут работать корректно. - 🔍 Поиск Windows: Файлы с "будущей" датой создания могут не отображаться в результатах поиска по дате.
💡 Рекомендация: Если вам нужно просто отсортировать файлы по дате, рассмотрите альтернативы:
- 📂 Создайте новую папку с понятным именем (например,
2023-01_Отчёты). - 🏷️ Используйте теги или цветовые метки в проводнике.
- 📌 Добавьте колонку с датой в сам файл Excel (например, на листе
Info).
7. Частые ошибки и их решения
Даже при следовании инструкциям пользователи сталкиваются с проблемами. Разберём самые распространённые:
| Ошибка | Причина | Решение |
|---|---|---|
| "Отказано в доступе" при использовании PowerShell | Недостаточно прав или файл открыт в Excel | Закройте файл, запустите PowerShell от администратора |
| Дата не меняется в BulkFileChanger | Файл помечен как "Только для чтения" | Снимите атрибут в свойствах файла или через attrib -R файл.xlsx |
| Макрос VBA выдаёт ошибку "File not found" | Неверный путь к файлу (особенно актуально для путей с кириллицей) | Используйте короткие пути (например, C:\Temp\файл.xlsx) или функцию Dir() для проверки |
| После изменения даты файл не открывается | Повреждение заголовков файла при низкоуровневом редактировании | Восстановите файл через Открыть и восстановить в Excel или используйте OpenOffice |
🔧 Диагностика: Если ни один метод не сработал, проверьте:
- Не заблокирован ли файл антивирусом (отключите защиту на время теста).
- Не находится ли файл на сетевом диске или в облачном хранилище (работайте с локальной копией).
- Не включена ли функция
Защита книгив Excel (может блокировать изменения метаданных).
FAQ: Ответы на частые вопросы
Можно ли изменить дату создания файла Excel на Android или iPhone?
На мобильных устройствах это невозможно без root/jailbreak. Альтернатива:
- Используйте облачные сервисы (например, Google Sheets), где дата создания не критична.
- Редактируйте файл на ПК, а затем загружайте на телефон.
Приложения вроде FX File Explorer (Android) позволяют изменять дату модификации, но не создания.
Почему после изменения даты в Excel отображается старая дата в формуле =FILEDATE()?
Функция FILEDATE() возвращает дату последнего изменения файла (Modified), а не создания (Created). Чтобы обновить её значение:
- Откройте файл и сохраните его (
Ctrl + S). - Или используйте VBA для принудительного пересчёта:
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.FullName
Как вернуть оригинальную дату создания, если я ошибся?
Если у вас есть резервная копия файла, восстановите её — дата вернётся к исходной. Без копии:
- Проверьте Журнал файлов в Windows (включается через
Панель управления → История файлов). - Используйте утилиты для восстановления метаданных, например, Metadata++.
- Если файл синхронизировался с облаком (OneDrive, Google Диск), проверьте историю версий.
Влияет ли изменение даты создания на цифровую подпись файла?
Да, любое редактирование файла (включая изменение метаданных) сбрасывает цифровую подпись. После модификации даты:
- Подпись будет помечена как недействительная.
- При открытии файла появится предупреждение
"Подпись не проверена". - Чтобы восстановить подпись, нужно заново подписать файл через
Файл → Сведения → Защита книги → Добавить цифровую подпись.
Можно ли автоматизировать изменение даты для новых файлов?
Да, с помощью PowerShell-скрипта или AutoHotkey. Пример скрипта для автоматического назначения текущей даты всем новым файлам в папке:
#PowerShell скрипт для наблюдения за папкой
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\Ваша_папка"
$watcher.Filter = "*.xlsx"
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true
$action = {
$path = $Event.SourceEventArgs.FullPath
$creationTime = (Get-Item $path).CreationTime
(Get-Item $path).CreationTime = (Get-Date)
Write-Host "Дата создания обновлена для $path"
}
Register-ObjectEvent $watcher "Created" -Action $action
Скрипт запускается в фоне и меняет дату создания на текущую для каждого нового .xlsx-файла.