Определение даты и времени создания или последнего изменения любого файла в 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 возвращает дату и время, которые отображаются в папке проводника справа от выбранного файла в столбце «Дата изменения» или «Дата», что означает — возможны исключения.
Veronika Пользователь Сообщений: 15 |
Ребята, добрый день! ActiveWorkbook.SaveAs Filename:=(«Прайс & TEXT(TODAY(),»»ГГГ-ММ-ДД»), «.xls» Не хочет работать,что я делаю не так? |
Hugo Пользователь Сообщений: 23249 |
#2 19.09.2013 16:44:50
|
||
Veronika Пользователь Сообщений: 15 |
|
Hugo Пользователь Сообщений: 23249 |
#4 19.09.2013 17:51:50 А так:
или
|
||||
Veronika Пользователь Сообщений: 15 |
Работает,спасибо! Только вот когда открываю этот сохраненный файл, то Эксель выдает сообщение: |
Hugo Пользователь Сообщений: 23249 |
Запишите рекордером сохранение в этом формате, используйте код. |
Veronika Пользователь Сообщений: 15 |
Нашла выход из ситуации: ActiveWorkbook.SaveAs Filename:=(«Прайс » & Format(Date, «YYYY-MM-DD») & «.xls»), FileFormat:=xlNormal |
SLAVICK Пользователь Сообщений: 70 |
#8 20.09.2013 17:37:41 А если расширение файла другое (например xlsm,xlsb ….)? … нужно определить его:
Потом уже можно смело сохранять:
или
Изменено: SLAVICK — 20.09.2013 17:39:38 |
||||||
Макрос для «Сохранить как» *имя файла + текущая дата* |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Skip to content
Как создать резервную копию книги с сегодняшней датой
На чтение 2 мин. Просмотров 2.6k.
Что делает макрос: Макрос позволяет создать резервную копию книги и сохраняет ваш файл в папке с сегодняшней датой.
Содержание
- Как это работает
- Код макроса
- Как работает этот код
- Как использовать
Как это работает
Хитрость данного макроса заключается в сопоставлении частей файла. Новое имя файла состоит из трех частей: путь, исходный файл и сегодняшняя дата.
Путь определяем с помощью свойства Path объекта ThisWorkbook.
Второй частью нового файла является исходное имя файла. Мы используем свойство Name объекта ThisWorkbook.
Текущую дату берем с помощью функции Date. Вы заметите, что мы форматируем дату (Format (Date, «мм-дд-гг»)). Это происходит потому, что по умолчанию функция даты возвращает мм / дд / гггг. Мы используем дефис вместо слэша, иначе это вызовет ошибку при попытке сохранить файл (Windows не позволяет использовать «/» в именах файлов.)
Код макроса
Sub SozdatRezervnuyuKopiyu() 'Сохранить книгу с новым именем ThisWorkbook.SaveCopyAs _ Filename:=ThisWorkbook.Path & "" & _ Format(Date, "mm-dd-yy") & " " & _ ThisWorkbook.Name End Sub
Как работает этот код
Используем одну единственную строку, которая с помощью метода SaveCopyAs создает новый имя файла и использует метод для сохранения файла.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код во вновь созданном модуле.
Когда мы работаем с книгой, иногда нам нужно добавить текущую дату и время при сохранении файла. Возможно, вы можете ввести дату и время после имени файла в диалоговом окне «Сохранить как», но здесь я могу познакомить вас с простым трюком для автоматического выполнения этого задания.
Сохраните файл Excel с датой и временем, используя код VBA
Сохраните файл Excel с датой и временем, используя код VBA
За исключением ввода даты и времени вручную, следующий код VBA может помочь вам автоматически добавить текущую дату и время к имени файла. Пожалуйста, сделайте следующие шаги:
1. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
Код VBA: автоматическое добавление даты и времени к имени файла
Sub filesave()
'Update 20141111
ActiveWorkbook.SaveAs ("C:UsersdtDesktopmy informationnov-kte-data " & Format(Now(), "DD-MMM-YYYY hh mm AMPM") & ".xlsx")
End Sub
3, Затем нажмите F5 ключ для запуска этого кода, текущая дата и время были добавлены после имени вашей активной книги, см. снимок экрана:
Внимание: В приведенном выше коде вам нужно изменить путь к файлу и имя по своему усмотрению.
Статьи по теме:
Как сохранить файл Excel со значением ячейки?
Как показать путь к файлу в строке заголовка или панели инструментов в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (5)
Оценок пока нет. Оцените первым!