Страницы: 1
RSS
Как создать папку с именем файла, подпапки с одинаковыми именами и переместить в одну из них сам файл
 
Здравствуйте! Помогите решить задачу с помощью макроса. Имеются файлы (больше 1000 штук), задача: создать папку с именем файла, в ней три подпапки: photo, video, text и переместить в папку photo сам файл. Так для каждого файла
Пример
есть папка с файлами расширения .jpg
12342.jpg
121343.jpg
В результате должно получиться
12342/photo/12342.jpg
12342/video
12342/text
121343/photo/121343.jpg
121343/video
121343/txt
Саму папку прикреплять не стал, так как размер большой. Знаю, что на форуме уже лежит аналогичная тема (https://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=38217), однако изменить макрос под своб задачу у меня не получилось Спасибо!
 
Решение.
Скрытый текст
Изменено: skais675 - 06.01.2022 11:44:28
 
Можно дореволюционными методами. Проверку наличия файлов и папок не делал.
Книга с макросом в папке с файлами jpg(Так прописан путь)
Код
Sub SpisokFiles()
Dim Put1$, ToValue$, Ima1$, Tp1, Tp2, Tp3, Arr1, Rach$, Sep$
Arr1 = Array("photo", "video", "text"): Rach = ".jpg": Ima1 = "ZZZZ"
Put1 = ThisWorkbook.Path: Sep = Application.PathSeparator
ToValue = "=FILES(""" & Put1 & Sep & "*" & Rach & """)"
ThisWorkbook.Names.Add Ima1, ToValue, True
Tp1 = Evaluate(Ima1): ThisWorkbook.Names(Ima1).Delete
If Not IsArray(Tp1) Then MsgBox "Нет файлов " & Rach: Exit Sub
For Each Tp2 In Tp1
ToValue = Put1 & Sep & Split(Tp2, Rach, , 1)(0)
MkDir ToValue
    For Each Tp3 In Arr1
MkDir ToValue & Sep & Tp3
    Next
Name Put1 & Sep & Tp2 As ToValue & Sep & Arr1(0) & Sep & Tp2
Next
End Sub
Изменено: Евгений Смирнов - 06.01.2022 22:14:42
 
, Огромнейшее вам спасибо!!!!!! Все работает, как и хотелось :)  
Страницы: 1
Наверх