Как узнать дату создания файла excel

Определение даты и времени создания или последнего изменения любого файла в VBA Excel. Функция FileDateTime — описание, синтаксис, примеры.

Описание

Определение функции FileDateTime:

FileDateTime — это функция, которая возвращает дату и время создания или последнего изменения любого файла по его полному имени. Тип возвращаемых данных — Variant (Date).

Формат отображения даты и времени зависит от региональных настроек системы. Российский формат — dd.mm.yyyy h:nn:ss.

Из наблюдений можно отметить, что функция FileDateTime, как правило, возвращает дату и время, которые отображаются в папке проводника справа от выбранного файла в столбце «Дата изменения» или «Дата», как на скриншоте из третьего примера.

Синтаксис

pathname — полное имя файла, включающее букву диска, вложенные папки и краткое имя файла с расширением.

Примеры с функцией FileDateTime

Пример 1

Есть файл «Отчет.xlsx» по адресу «C:UsersEvgeniyDesktop», который был изменен ‎13 ‎августа ‎2022 ‎г., ‏‎0:55:05 (окно «Свойства:Отчет.xlsx»). Проверяем, что будет отображено в информационном окне MsgBox при использовании переменных разного типа для присвоения значений, возвращенных функцией FileDateTime:

Sub Primer1()

Dim d As Date, s As String, n As Double

d = FileDateTime(«C:UsersEvgeniyDesktopОтчет.xlsx»)

MsgBox d  ‘Результат: 13.08.2022 0:55:05

s = FileDateTime(«C:UsersEvgeniyDesktopОтчет.xlsx»)

MsgBox s  ‘Результат: 13.08.2022 0:55:05

n = FileDateTime(«C:UsersEvgeniyDesktopОтчет.xlsx»)

MsgBox n  ‘Результат: 44786,0382523148

End Sub

Пример 2

Примеры отображения в VBA Excel только даты, возвращенной функцией FileDateTime:

Sub Primer2()

Dim d As Date

d = FileDateTime(«C:UsersEvgeniyDesktopОтчет.xlsx»)

MsgBox Format(d, «Short Date»)  ‘Результат: 13.08.2022

MsgBox Format(d, «dd.mm.yy»)  ‘Результат: 13.08.22

End Sub

Пример 3

Есть папка с файлами:

Необходимо из кода VBA Excel получить список файлов в папке «C:UsersEvgeniyDesktopНовая папка», пройтись по списку файлов циклом For Each… Next и записать на активный рабочий лист следующую информацию:

  • № п/п — в первый столбец со второй строки;
  • имя файла — во второй столбец;
  • дату и время изменения файла — в третий столбец;
  • создать строку заголовков — «№ п/п», «Имя» и «Дата»;
  • осуществить автоподбор ширины столбцов и добавить границы ячеек.

Для получения списка файлов в заданной папке будем использовать метод FileSystemObject.GetFolder:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

Sub Primer3()

Dim myPath As String, myFolder As Folder, myFile As File, n As Integer

‘Записываем в переменную myPath полное имя папки

myPath = «C:UsersEvgeniyDesktopНовая папка»

    ‘Создаем новый экземпляр FileSystemObject

    Dim fso As New FileSystemObject

    ‘Присваиваем переменной myFolder ссылку на объект Folder

    Set myFolder = fso.GetFolder(myPath)

    ‘Проверяем, есть ли файлы в папке myFolder

    If myFolder.Files.Count = 0 Then

        MsgBox «В папке «» & myPath & «» файлов нет»

        Exit Sub

    End If

    ‘Записываем номер по порядку в первый столбец активного листа,

    ‘имя файла — во второй столбец,

    ‘дату изменения файла — в третий столбец.

    For Each myFile In myFolder.Files

        n = n + 1

        Cells(n + 1, 1) = n

        Cells(n + 1, 2) = myFile.Name

        Cells(n + 1, 3) = FileDateTime(myFile.Path)

    Next

    ‘Заполняем строку заголовков

    With Cells(1, 1)

        .Value = «№ п/п»

        ‘Автоподбор ширины столбца

        .EntireColumn.AutoFit

        ‘Полужирное начертание

        .Font.Bold = True

        ‘Выравнивание значения по центру

        .HorizontalAlignment = xlCenter

    End With

    With Cells(1, 2)

        .Value = «Имя»

        .EntireColumn.AutoFit

        .Font.Bold = True

        .HorizontalAlignment = xlCenter

    End With

    With Cells(1, 3)

        .Value = «Дата»

        .EntireColumn.AutoFit

        .Font.Bold = True

        .HorizontalAlignment = xlCenter

        ‘Добавляем границы ячеек

        .CurrentRegion.Borders.LineStyle = True

    End With

End Sub

Результат работы кода:

Если сравнить дату и время изменения файлов в папке проводника и в таблице Excel, то можно заметить, что время изменения файла «Certificate.pdf» разнится на 1 час. Непонятно, почему это происходит, так как в свойствах файла также указано время изменения, как в папке проводника:

Именно из-за этого случая я добавил словосочетание как правило в утверждение, что функция FileDateTime возвращает дату и время, которые отображаются в папке проводника справа от выбранного файла в столбце «Дата изменения» или «Дата», что означает — возможны исключения.


Получить и вставить время создания и время последнего изменения в ячейки

В этой статье будут рассказываться о способах получения времени создания и времени последнего изменения текущей информации книги, а также вставки времени создания и времени последнего изменения текущей информации книги в ячейки Excel.

Получите время создания и время последнего изменения в Excel с помощью команды Info

Получите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств

Вставьте созданное время и время последнего изменения в ячейки Excel с кодом VBA

Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel хорошая идея3


стрелка синий правый пузырь Получите время создания и время последнего изменения в Excel с помощью команды Info

Мы можем узнать точное время создания и время последнего изменения текущей книги в представлении за кулисами Microsoft Excel 2010/2013.

Нажмите Файл > Инфо, а в правой части представления за кулисами отображается Связанные даты Информация. Под Связанные даты title, в нем указано время последнего изменения, время создания и время последней печати. См. Следующий снимок экрана:

Примечание: Этот способ доступен только в Microsoft Excel 2010/2013. Это недопустимо в Excel 2007.


стрелка синий правый пузырьПолучите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств

Фактически, мы можем получить как время создания, так и время последнего изменения текущей книги в диалоговом окне «Свойства документа».
Шаг 1: Открой Дополнительные свойства диалоговое окно:

В Excel 2007 щелкните значок Офисы кнопка> Подготовить > ПредложенияИ Свойства документа панель будет отображаться под панелью инструментов, щелкните Свойства документа > Дополнительные свойства, смотрите скриншоты:

В Excel 2010/2013 щелкните значок Файл > Инфо > Предложения > Дополнительные свойства.

документ-вставка-измененное время-4-4

Шаг 2: В Дополнительные свойства В диалоговом окне вы увидите время создания и время последнего изменения на вкладке Статистика. См. Следующий снимок экрана:

документ-вставка-измененное время-4-4


стрелка синий правый пузырь Вставьте созданное время и время последнего изменения в ячейки Excel с кодом VBA

Следующие макросы VBA помогут вам напрямую вставить в ячейки время создания и время последнего изменения текущей информации книги.

Вставьте время создания и время последнего изменения в Excel

Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.

Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.

Код VBA: вставьте время создания и время последнего изменения в Excel

Sub Workbook_Open()
Range("A1").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Creation Date"), "short date")
Range("A2").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Last Save Time"), "short date")
End Sub

Шаг 3:Нажмите F5 ключ для запуска этого макроса. И тогда дата создания и дата последнего изменения будут вставлены в ячейку A1 и ячейку A2 отдельно.

Внимание: вы можете изменить ячейку назначения в VB в соответствии с вашими потребностями.

Вставить время последнего изменения книги в Excel

Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.

Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.

Public Function ModDate()
ModDate = Format(FileDateTime(ThisWorkbook.FullName), "m/d/yy h:n ampm")
End Function

Шаг 3: Затем сохраните и закройте этот код и вернитесь на рабочий лист, в пустой ячейке введите формулу = ModDate (), и нажмите Enter ключ. Затем он вставляет в ячейку время последнего изменения.

-2

Вставить созданное время книги в Excel

Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.

Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.

Function CreateDate() As Date
CreateDate = ActiveWorkbook.BuiltinDocumentProperties("Creation Date")
End Function

Шаг 3: Сохраните и закройте этот код, вернитесь на лист, в пустой ячейке введите формулу = CreateDate (), и нажмите Enter key. и созданная дата будет вставлена ​​в ячейку, как показано на следующих снимках экрана:

-2

Примечание: Если ваша ячейка не является форматом даты, она может отображать странное число. Просто отформатируйте эту ячейку как Время формат, он будет отображаться как обычная дата.


стрелка синий правый пузырь Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel

Могу я представить вам удобный инструмент —Kutools for Excel какие из более чем 300 полезных функций могут повысить эффективность вашей работы? С этими Вставить информацию о книге Вы можете быстро вставить путь к книге, имя книги / рабочего листа, имя пользователя или время создания и время последнего изменения в ячейки, верхний или нижний колонтитул.

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Нажмите Кутулс Плюс > Workbook > Вставить информацию о книге. Смотрите скриншот:
doc последнее изменение name2

2. Затем в Вставить информацию о книге диалоговом окне, проверьте информацию, которую вы хотите вставить из раздела информации, затем перейдите, чтобы указать место, в которое вы хотите вставить, вы можете выбрать ячейки, нижний колонтитул (левый нижний колонтитул, центральный нижний колонтитул, правый нижний колонтитул) или заголовок (левый верхний колонтитул, центральный верхний колонтитул, правый заголовок). Смотрите скриншот:
вставка документа создана, время изменения 1

3. Нажмите Ok, и проверяемая вами информация была вставлена ​​в указанное вами место.

Наконечник. Если вы хотите получить бесплатную пробную версию функции «Вставить информацию о книге», пожалуйста, перейдите к бесплатной загрузке Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.

стрелка синий правый пузырь Вставить информацию о книге


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 107


Репутация:

2

±

Замечаний:
0% ±


Excel 2010

Утро сказывается… =)) Не проснулся я. =) Решение найдено.
Вернее понял почему найденное решение в инете не заработало у меня =)))
Если кому надо ответ на моем примере:

[vba]

Код

ActiveWorkbook.Sheets(«Список»).Range(«D» & sh) = FileDateTime(strDirPath & strFileName)

[/vba]

Я банально пробовал использовать только strFileName а не полный пусть. +) В результате чего у меня не работало… =))
Тему можно закрыть, удалить и т.д. =))
Всем спасибо за внимание =)))

 

borro

Пользователь

Сообщений: 198
Регистрация: 01.01.1970

#1

12.12.2018 17:09:46

Здравствуйте!

Попытался кодом

Код
ActiveWorkbook.BuiltinDocumentProperties("Creation Date")

получить дату создания файла и понял, что это так называемая Дата создания содержимого.

Как же у активной книги получить дату создания файла?

желаю всем счастья

 

БМВ

Модератор

Сообщений: 21383
Регистрация: 28.12.2016

Excel 2013, 2016

borro,  можете свою мысль изложить более доходчиво? Содержимое файла создается одновременно с его созданием.

По вопросам из тем форума, личку не читаю.

 

Wiss

Пользователь

Сообщений: 1028
Регистрация: 08.11.2016

FileDateTime (ActiveWorkbook.FullName)
Вру, это дата последнего изменения.

Изменено: Wiss12.12.2018 17:22:08

Я не волшебник, я только учусь.

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#4

12.12.2018 17:21:19

Код
MsgBox CreateObject("Scripting.FileSystemObject").getfile(ThisWorkbook.Path & "" & ThisWorkbook.Name).DateCreated

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

borro

Пользователь

Сообщений: 198
Регистрация: 01.01.1970

#5

12.12.2018 17:22:52

Цитата
БМВ написал:
Содержимое файла создается одновременно с его созданием.

вот эти даты, видимые через свойства файла:

Прикрепленные файлы

  • dates.jpg (88.72 КБ)

желаю всем счастья

 

БМВ

Модератор

Сообщений: 21383
Регистрация: 28.12.2016

Excel 2013, 2016

#6

12.12.2018 17:35:33

Оно?

Код
ActiveWorkbook.BuiltinDocumentProperties("Last save time")

Изменено: БМВ12.12.2018 17:37:36

По вопросам из тем форума, личку не читаю.

 

borro

Пользователь

Сообщений: 198
Регистрация: 01.01.1970

Ігор Гончаренко, спасибо. Похоже она. А после этого создания объекта(CreateObject) наверно надо производить его деструкцию. Как?

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#8

12.12.2018 17:41:51

Цитата
БМВ написал: «Last save time»

Скорее ТС нужно:
«Creation Date»

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

borro

Пользователь

Сообщений: 198
Регистрация: 01.01.1970

#9

12.12.2018 17:43:21

Цитата
JayBhagavan написал:
Скорее ТС нужно:»Creation Date»

Спасибо. Это я уже пробовал(первое сообщение), не то

желаю всем счастья

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

borro, я понял, что Вам именно это нужно исходя из того, что Вы выделили на скрине.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Казанский

Пользователь

Сообщений: 8839
Регистрация: 11.01.2013

#11

12.12.2018 18:40:37

Цитата
borro написал:
Это я уже пробовал(первое сообщение), не то

Отличаются на секунды :) Вот для моего PERSONAL.XLSM

Код
?createobject("scripting.filesystemobject").getfile(thisworkbook.FullName).datecreated
10.09.2015 0:04:26 
?thisworkbook.BuiltinDocumentProperties("Creation Date")
10.09.2015 0:04:07 
?thisworkbook.BuiltinDocumentProperties("Last Save Time") 'для сравнения
09.09.2018 15:23:56 
Цитата
borro написал:
А после этого создания объекта(CreateObject) наверно надо производить его деструкцию

Не надо. VBA сам об этом позаботится.

Изменено: Казанский12.12.2018 18:44:13

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#12

12.12.2018 19:01:21

Доброе время суток

Цитата
Казанский написал:
Отличаются на секунды

Может ТС под датой создания подразумевает дату извлечения из архива или сохранения почтового вложения?

 

borro

Пользователь

Сообщений: 198
Регистрация: 01.01.1970

#13

13.12.2018 09:09:56

Доброе утро! Всем спасибо. Нет, я имел в виду дату создания файла

желаю всем счастья

0 / 0 / 1

Регистрация: 19.01.2016

Сообщений: 149

1

Получение даты создания файла

01.02.2019, 10:58. Показов 3512. Ответов 2


Студворк — интернет-сервис помощи студентам

Добрый день. Подскажите пожалуйста как в VBA получить дату именно создания файла (показываю на скриншоте). В сети море примеров, но все примеры выводят именно дату последнего сохранения. А нужна именно дата когда файл был создан.
Большое спасибо!

Миниатюры

Получение даты создания файла
 



0



4038 / 1423 / 394

Регистрация: 07.08.2013

Сообщений: 3,541

01.02.2019, 11:44

2



0



0 / 0 / 1

Регистрация: 19.01.2016

Сообщений: 149

01.02.2019, 12:01

 [ТС]

3

Цитата
Сообщение от snipe
Посмотреть сообщение

покопайтесь тут

Нашел только:
MsgBox File.DateCreated & vbCrLf
MsgBox File.DateLastAccessed & vbCrLf
MsgBox File.DateLastModified & vbCrLf
Все три возвращают дату последнего изменения. А мне нужна та дата, которую на скрине указал.



0



Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как узнать дату создания документа word
  • Как узнать где формулы excel
  • Как узнать где используется ячейка excel
  • Как узнать высоту ячейки в excel
  • Как узнать высоту строки в excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии