Страницы: 1
RSS
Копирование файлов из папок/подпапок по имени в списке, Копирование файлов по имени
 
Добрый день всем. Помогите пожалуйста обновить макрос поиска и копирования файлов по списку указанному в столбце "A" данный макрос работает, когда все файлы списка в одной папке. Необходимо сделать так, чтобы он искал файлы так же в подпапках.
 
vova_nich, это Вам нужно в сторону FilenamesCollection смотреть, там глубина перебора просто задаётся...
 
В этом то и проблема, что в написании макросов не силен :cry:  
 
Посмотрите здесь.
 
Почитайте здесь и здесь.
 
Спасибо за ссылки, но не то. Тут задача стоит по уже полученному списку файлов скопировать их из подпапок в определенный каталог  
Изменено: vova_nich - 01.06.2018 21:40:39
 
Из указанных здесь ссылок собрал своё, не копирует. В другом чате выложил вариант копирования всех файлов с поиском по имени. Но там только из одной папки.
В примере, на который указывают ссылки, нет копирования. А где есть копирование, то там только из одной папки.
Вот мой вариант. Прошу помощи.
 
сначала напишите что вам нужно (какую задачу решаете), а потом уже и помощь
наоборот - никак
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Прочитав своё сообщение понял проблему. Это не техническое сообщение, а какой-то крик души.

Задача: Поиск и копирование файлов в названии которых встречается полное совпадение со значениями указанными в первом столбце (процесс не останавливается при первом совпадении, а проверяет все файлы). Просмотр и копирование происходит из папки и подпапок находящихся в ней, в одну папку. Обе первоначальные папки (от куда и куда копировать) указываются при запуске макроса.

В приложенном файле происходят все процедуры указанные выше, кроме копирования и вставки. Неработающие строки помечены.
 
что делать если в разных подпапках нашлось 2 (и более) файла с одинаковыми именами
в одну папку их не скопировать без дополнительных манипуляций (каких?)
Изменено: Ігор Гончаренко - 13.10.2022 11:11:41
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Возможно я не правильно высказался, если в разных папках одинаковые файлы ну и ладно. Пример: критерий (123), файлы в папках "фва123щш", "6516пкк", "654123мк", "12365", "ыкап124маку", "6516пкк" . И задача что бы он скопировал 1, 3 и 4 файлы. А 6 файл уже скопирован. Поэтому даже если он будет скопирован, он заменит тот что уже есть.
Файлы это чертежи. И  если кто сталкивался с ресурсной спецификацией, то по факту это поиск и копирование всех чертежей которые нужны для изготовления изделия.

И для этого у меня добавлено:
   
For Each objFile In objFolder.Files
       For q = 2 To w
           If InStr(1, objFile, Cells(q, 1)) > 0 Then
               Cells(q, 1).Interior.Color = vbYellow
               
               FileCopy objFile, sFolder1 ' копирование (не получается)
               
               objFolder.copyFile objFile, sFolder1 ' копирование (не получается)
               
               Exit For
           End If
       Next
Next
Получается я не нахожу файл который соответствует критерию, я проверяю каждый файл на соответствие критерия (содержание ячеек).
Изменено: Лилиенталь - 13.10.2022 12:15:46
 
Строка
     'If f.Name Like fls(r, 1) Then
не работает

Заменил на
       If InStr(1, f, Cells(r, 1)) > 0 Then
заработало.

СПАСИБО.
 
если в имена файлов дописать звездочки - сработает)
это все из-за недосказанности в т.з., все что не ясно в т.з. можно уточнять-выспрашивать, а можно додумать самому)
и в моем решении, если файл есть в конечной папке, он не будет скопирован с исходной
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
если в имена файлов дописать звездочки - сработает)
это все из-за недосказанности в т.з., все что не ясно в т.з. можно уточнять-выспрашивать, а можно додумать самому)
и в моем решении, если файл есть в конечной папке, он не будет скопирован с исходной

В имена файлов которые нужно копировать? Если так то не получиться. Получаю комплект КД где сотни файлов и все переименовывать не вариант. Тогда скопирую в ручную. Или я не про те имена понял?

И я взял именно Ваше решение и его буду использовать. СПАСИБО.
 
то, что у вас в А2 и дальше написано:
КПДМ.301342.858
написать
Код
*КПДМ.301342.858*.*
тогда Like сработает
но если вы добились работоспособного кода - ничего уже трагать не нужно. пусть работает))
Изменено: Ігор Гончаренко - 13.10.2022 18:48:43
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх