Страницы: 1
RSS
Присвоение даты изменения и текста в имя файлов (pdf) в директории
 
Добрый день.
1. на лисе C:\TestSheet лежит куча файлов в формате pdf
2. необходимо в имя файла добавить дату изменения файла и некоторый текст, например : "20.06.2016_Тестовый_Файл...pdf"

Во вложении пример недопиленного кода, помогите пожалуйста его настроить.
 
MEP,
Код
Sub SaveSheet()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("D:\Tmp\")
For Each File In Folder.Files
    Name File.Path As File.ParentFolder.Path & "\" & Replace(Replace(File.DateLastModified, "/", "."), ":", "-") & "_" & File.Name
Next
End Sub
 
Большущий Вам респект. Просто сэкономили мне пару недель работы
 
факультативная просьба все таки возникла.
а можно еще пару строк кода добавить который будет возвращать дату как строку в нужном формате и затем ее
вставлять в имя файла.
т.е. сейчас дата вываливается в формате ДДММГГГГ ЧЧ:ММ
а надо ГГГГММДД (без часов/минут)
я понимаю что макрос берет из системного формата, но к сожалению его я не могу поменять (иначе возникают проблемы с другими приложениями).
 
Цитата
MEP написал:
а надо ГГГГММДД (без часов/минут)
Проверьте, так-ли?
 
испытал, не совсем то что надо.
Первое решение работает быстро и не создает дополнительный файл, но формат даты не подходит.

Ваше решение создает дополнительный файл, причем в нем нет содержимого, т.е. там белый лист. и Имя исходного файла не прибавляется в формату даты. т.е. как теперь надо скрестить Ваше решение с предыдущим:)
 
Заменить
Код
Replace(Replace(File.DateLastModified, "/", "."), ":", "-")
на
Код
Format(File.DateLastModified, "yyyymmdd")
Изменено: Jungl - 05.07.2017 13:22:14
 
Цитата
MEP написал:
Ваше решение создает дополнительный файл, причем в нем нет содержимого, т.е. там белый лист. и Имя исходного файла не прибавляется в формату даты. т.е. как теперь надо скрестить Ваше решение с предыдущим:)
MEP, покажите, какое имя файла Вы хотите получить?
А доп. файл создаётся как копия исходного. И если в нём пусто, то и в копии будет пусто.
Вообще, зачем Вам делать копию листа? Можно сразу печатать в PDF с именем по Вашему критерию и ложить его куда угодно.
Или необходима копия и в книге?
 
ок, например в папке лежит файл с именем "Книга_1.pdf", дата изменения этого файла: 30.01.2005 15:00
мне нужно получить: "2005_01_30_Книга_1.pdf"
старый файл мне не нужен. т.е. его либо переименовать надо, либо удалять потом после печати нового файла с новым именем.
 
Цитата
MEP написал:
мне нужно получить: "2005_01_30_Книга_1.pdf"
Вопрос опять запутан:
Вы хотите просто переименовать "Книга_1.pdf" в нужный формат в папке?, или сформировать файл "2005_01_30_Книга_1.pdf" как копию листа Книга_1 из файла Excel "Переименование в директории.xlsm"?
Лист Книга_1 копировать и сохранять в книге?, или просто сохранить в формате pdf в папку с нужным именем?
 
Цитата
pitby написал:
просто сохранить в формате pdf в папку с нужным именем?
Пробуйте так.
 
Во! то, что надо теперь, за исключением одного
что нужно поменять в этой строке, что бы макрос считывал файлы с любым начальным именем и форматом? просто "*" наверно не поставишь?
Код
FName = Format(Date, "yyyy_mm_dd") & "_Книга_" & ActiveSheet.Index & ".pdf

Большое спасибо за уделенное время. осталось совсем немного:)

Изменено: MEP - 06.07.2017 08:23:22
 
Цитата
MEP написал:
что нужно поменять в этой строке, что бы макрос считывал файлы с любым начальным именем и форматом?
Ещё раз - какие файлы должен считывать макрос? Откуда?
Вы определитесь всё таки с заданием!
 
ОК, Попробую заново.

В папке C:\TestSheet лежит много файлов с расширением pdf.

Запуская Ваш макрос (в последнем варианте)  получается что он в этой папке создает файл pdf с заданным именем (в макросе) и содержимым листа Excel, с расширением pdf.

Задача была в том, что бы в папке C:\TestSheet переименовать все файлы так, что бы имя каждого файла вначале содержало в себе дату изменения этого файла в формате ГГГГММДД.

Еще раз сорри за некорректно поставленную задачу.
 
чем подсказка #7 не подошла?
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
MEP написал:
Задача была в том, что бы в папке C:\TestSheet переименовать все файлы так, что бы имя каждого файла вначале содержало в себе дату изменения этого файла в формате ГГГГММДД.
Всё теперь понятно. Вам нужно использовать пример JeyCi.
Цитата
...содержало в себе дату изменения этого файла
Откуда брать дату? Из даты файла, или дату на момент запуска макроса?
Что делать с теми, что уже были переименованы по шаблону? Ещё раз переименовывать?

Всё БОЛЬШЕ и БОЛЬШЕ вопросов.
 
Всем большое спасибо за уделенное время. все получилось благодаря Вашим примерам
Страницы: 1
Наверх