Определение даты и времени создания или последнего изменения любого файла в 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
Получите время создания и время последнего изменения в Excel с помощью команды Info
Мы можем узнать точное время создания и время последнего изменения текущей книги в представлении за кулисами Microsoft Excel 2010/2013.
Нажмите Файл > Инфо, а в правой части представления за кулисами отображается Связанные даты Информация. Под Связанные даты title, в нем указано время последнего изменения, время создания и время последней печати. См. Следующий снимок экрана:
Примечание: Этот способ доступен только в Microsoft Excel 2010/2013. Это недопустимо в Excel 2007.
Получите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств
Фактически, мы можем получить как время создания, так и время последнего изменения текущей книги в диалоговом окне «Свойства документа».
Шаг 1: Открой Дополнительные свойства диалоговое окно:
В Excel 2007 щелкните значок Офисы кнопка> Подготовить > ПредложенияИ Свойства документа панель будет отображаться под панелью инструментов, щелкните Свойства документа > Дополнительные свойства, смотрите скриншоты:
В Excel 2010/2013 щелкните значок Файл > Инфо > Предложения > Дополнительные свойства.
Шаг 2: В Дополнительные свойства В диалоговом окне вы увидите время создания и время последнего изменения на вкладке Статистика. См. Следующий снимок экрана:
Вставьте созданное время и время последнего изменения в ячейки 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 ключ. Затем он вставляет в ячейку время последнего изменения.
Вставить созданное время книги в Excel
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.
Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.
Function CreateDate() As Date
CreateDate = ActiveWorkbook.BuiltinDocumentProperties("Creation Date")
End Function
Шаг 3: Сохраните и закройте этот код, вернитесь на лист, в пустой ячейке введите формулу = CreateDate (), и нажмите Enter key. и созданная дата будет вставлена в ячейку, как показано на следующих снимках экрана:
Примечание: Если ваша ячейка не является форматом даты, она может отображать странное число. Просто отформатируйте эту ячейку как Время формат, он будет отображаться как обычная дата.
Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel
Могу я представить вам удобный инструмент —Kutools for Excel какие из более чем 300 полезных функций могут повысить эффективность вашей работы? С этими Вставить информацию о книге Вы можете быстро вставить путь к книге, имя книги / рабочего листа, имя пользователя или время создания и время последнего изменения в ячейки, верхний или нижний колонтитул.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Нажмите Кутулс Плюс > Workbook > Вставить информацию о книге. Смотрите скриншот:
2. Затем в Вставить информацию о книге диалоговом окне, проверьте информацию, которую вы хотите вставить из раздела информации, затем перейдите, чтобы указать место, в которое вы хотите вставить, вы можете выбрать ячейки, нижний колонтитул (левый нижний колонтитул, центральный нижний колонтитул, правый нижний колонтитул) или заголовок (левый верхний колонтитул, центральный верхний колонтитул, правый заголовок). Смотрите скриншот:
3. Нажмите Ok, и проверяемая вами информация была вставлена в указанное вами место.
Наконечник. Если вы хотите получить бесплатную пробную версию функции «Вставить информацию о книге», пожалуйста, перейдите к бесплатной загрузке Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.
Вставить информацию о книге
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Sasha_tver
Пользователь
Сообщений: 42
Регистрация: 01.01.1970
#7
26.07.2013 17:40:13
Файл хранится, на сервере в офисе компании, к сожелению я не смогу Вам его прислать. Цель следующая, данный файл является элементом группы файлов информация из него переходит в сводный файл, информация в файле обновляется ежедневно и проверяющему необходимо понимать была ли обновлена информация, вот поэтому и прошу, что бы помогли получать данные о дате последнего редактирования.
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Еще…Меньше
Функция «Показать изменения» в Excel позволяет точно узнать, какие изменения были внесены в книги, чтобы вы могли с уверенностью разрешить другим пользователям работать над вашей работой. Вы можете просмотреть сведения о том, кто что изменил, где и когда, а также предыдущее значение ячейки для быстрого изменения. Список изменений можно сузить, выбрав лист, диапазон или отдельную ячейку, чтобы просмотреть все внесенные изменения, включая массовые изменения. Последние изменения отображаются в течение 60 дней. Если у вас возникли проблемы, получите справку по от показанию изменений.
Просмотр изменений для всей книги
-
На вкладке «Рецензию» выберите «Показать изменения».
-
Изменения отображаются на панели с последними изменениями сверху в порядке их внесения.
-
Вы можете увидеть, кто внося изменения, где именно в книге, когда и что они изменили.
-
Вы также можете просмотреть изменения, внесенные одновременно, щелкнув » Просмотреть изменения в массовой карточке».
Примечание:
Отображение изменений отслеживает изменения, внесенные с windows Desktop, Excel на телефонах Mac, iPad, iOS и Android. Последние изменения отображаются в течение 60 дней.
Фильтрация и просмотр изменений для подмножества или диапазона
1. Выберите любой лист, диапазон или одну ячейку.
2. Щелкните правой кнопкой мыши, чтобы открыть контекстное меню и выбрать пункт «Показать изменения».
Примечание: Если вы или другие пользователи редактируем книгу, пока открыта эта область, нажмите кнопку «Просмотреть новые изменения», чтобы обновить изменения. Это уведомление позволяет оставаться под управлением, если вы хотите обновить список и не отвлекаться при просмотре изменений.
Фильтрация изменений на панели «Изменения»
-
В верхней части панели щелкните значок фильтра.
-
Выберите «Диапазон» или «Лист», чтобы отфильтровать отображаемые изменения, а затем выполните следующие действия.
-
Чтобы отобразить изменения диапазона или ячейки, выберите «Диапазон» и введите диапазон или ячейку в текстовом поле.
-
Щелкните значок стрелки рядом с текстовым полем для подтверждения.
-
Нужна дополнительная помощь?
как в ячейке (или в 2разных ячейках) excell хранить дату и время изменения файла (те что в свойствах файла)?
Нужно для решения проблемы — при работе с данными экселя в другом файле (сводн.табл.) — видеть дату последнего сохранения исходного файла. Чайник я в этом… не могу докопаться… вроде все перепробовал… Помогите!
6 ответов
275
03 ноября 2005 года
pashulka
985 / / 19.09.2004
Дело в том, что указанное Вами свойство, хранит время последнего сохранения рабочей книги, а значит Вы можете использовать соответствующее событие рабочей книги :
Код:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets(1).Range(«A1»).Value = Now ‘Now()
End Sub
Примечание : Разместить этот событие необходимо в модуле ThisWorkbook(ЭтаКнига) нужной рабочей книги.
405
03 ноября 2005 года
Dmitrii
554 / / 16.12.2004
Цитата:
Originally posted by ЖКа
как в ячейке (или в 2разных ячейках) excell хранить дату и время изменения файла (те что в свойствах файла)?
Нужно для решения проблемы — при работе с данными экселя в другом файле (сводн.табл.) — видеть дату последнего сохранения исходного файла. Чайник я в этом… не могу докопаться… вроде все перепробовал… Помогите!
Можете также воспользоваться для этого средствами VBS. Вот пример:
Код:
Function ShowFileModifiedInfo(ByVal fileSpec As String) As String
Dim myFSO As Object, myFile As Object
Set myFSO = CreateObject(«Scripting.FileSystemObject»)
If (myFSO.FileExists(fileSpec)) Then
Set myFile = myFSO.GetFile(fileSpec)
ShowFileModifiedInfo = myFile.DateLastModified
Else
ShowFileModifiedInfo = «Файл » & UCase(fileSpec) & » не найден.»
End If
End Function
Sub Test()
Dim timeModif As String
Const testFile = «c:tempbook.xls»
timeModif = ShowFileModifiedInfo(testFile)
MsgBox timeModif
End Sub
Такой способ избавляет от необходимости хранить нужные Вам значения в книге. Вы всегда сможете определить их «на лету».
275
11 ноября 2005 года
pashulka
985 / / 19.09.2004
Средствами VBA, также можно «на лету» определять дату и время последнего сохранения файла, например :
Код:
iFileDateTime = FileDateTime(ThisWorkbook.FullName)
iFileDateTime = FileDateTime(ActiveWorkbook.FullName)
iFileDateTime = FileDateTime(«C:ArchiveTemp.xls»)
305
12 ноября 2005 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by pashulka
Средствами VBA, также можно «на лету» определять дату и время последнего сохранения файла, например :
Код:
iFileDateTime = FileDateTime(ThisWorkbook.FullName)
iFileDateTime = FileDateTime(ActiveWorkbook.FullName)
iFileDateTime = FileDateTime(«C:ArchiveTemp.xls»)
А как это можно применить в ворде? Как «ThisWorkbook.FullName» заменить на текущий документ ворда?
305
12 ноября 2005 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by pashulka
Средствами VBA, также можно «на лету» определять дату и время последнего сохранения файла, например :
Код:
iFileDateTime = FileDateTime(ThisWorkbook.FullName)
iFileDateTime = FileDateTime(ActiveWorkbook.FullName)
iFileDateTime = FileDateTime(«C:ArchiveTemp.xls»)
А как это можно применить в ворде? Как «ThisWorkbook.FullName» заменить на текущий документ ворда?
275
12 ноября 2005 года
pashulka
985 / / 19.09.2004
Код:
iFileDateTime = FileDateTime(ThisDocument.FullName) ‘ActiveDocument
Примечание : Только документ должен быть сохранён, иначе Вы получите ошибку.