0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
|
1 | |
Переименовать файлы в разных папках07.07.2019, 17:43. Показов 7594. Ответов 24
Метки нет (Все метки)
Всем добрый вечер. Нужно переименовать файлы находящиеся в разных папках
имя Путь a12.docx D:\переименовать файлы\1а12\ f12.docx D:\переименовать файлы\12\ и11.docx D:\переименовать файлы\11s\ в любые другие имена например: имя Путь 11a12.docx D:\переименовать файлы\1а12\ 23f12.docx D:\переименовать файлы\12\ 44и11.docx D:\переименовать файлы\11s\ Не подскажите макрос в VBA для excel?
0
|
07.07.2019, 17:43 | |
Ответы с готовыми решениями:
24
Переименовать файлы в папках Переименовать, переместить файлы в папках Переименовать рекурсивно файлы в папках Переименовать файлы в папках по имени папки |
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
|
07.07.2019, 18:50 | 2 |
Strashnoslav, не полениться и набрать в поисковике rename ВБА. Одна из тысяч ссылок http://yandex.ru/clck/jsredir?... ime=144249
0
|
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
||||||
07.07.2019, 20:31 [ТС] | 3 | |||||
Искал но удобного для работы не нашел.
Вот например из ссылки
0
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
||||||
08.07.2019, 06:54 | 4 | |||||
Strashnoslav, составить массив исходных имен, либо записать их , например, в первый столбец листа, во второй соответствующие новые имена. а потом цикл по этим ячейкам. На основе того, что вы прочитали это можно записать так
0
|
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
||||||
22.02.2020, 15:26 [ТС] | 5 | |||||
Доброго времени суток. Не подскажите как с помощью подобного макроса
0
|
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
|
|
22.02.2020, 16:29 | 6 |
Добавьте перед копированием строку
MakeSureDirectoryPathExists sNewFileName (может быть будет мешать имя файла, тогда его нужно отрезать, я не проверял и не помню) а в модуль Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
0
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
||||||
22.02.2020, 17:19 | 7 | |||||
Strashnoslav, например так
0
|
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
|
|
22.02.2020, 17:47 | 8 |
MkDir насколько помню создаёт не дерево, а только один каталог. MakeSureDirectoryPathExists создаёт сразу дерево. Кстати если вдруг в именах нужна диакритика - тоже есть решение, используйте SHCreateDirectoryExW
0
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
||||||
22.02.2020, 20:14 | 9 | |||||
А можно ещё почесать левое ухо правой рукой через голову (Hugo121, конечно, прав)
0
|
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
||||||
22.02.2020, 22:11 [ТС] | 10 | |||||
Hugo121, не выходит, пробовал
0
|
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
||||||
22.02.2020, 22:26 [ТС] | 11 | |||||
Burk, что-то не разберусь с вашем макросом
По идее мне нужен макрос который создаст дерево каталогов, а затем уже не трудно туда закинуть файлы
0
|
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
|
|
22.02.2020, 22:30 | 12 |
- почему остановились на третьей строке? Или второй? Или четвёртой?
Добавлено через 1 минуту Да, это для Экселя х32 Добавлено через 1 минуту Проверил - имя файла не мешает.
0
|
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
|
|
23.02.2020, 01:08 | 13 |
Strashnoslav, это не макрос, а процедура с параметрами или вы их не различаете? Пример макроса запуска мой макрос proba. Просто ту процедуру CopyFile из первого моего сообщения надо заменить на CopyFile их второго сообщения.
Создаются деревья каталогов, если их нет, и тут же копируются туда файлы, получаемые с листа экселя. Надо их занести в столбик подряд на лист. Но я думаю, что у Hugo121 проще. И не надо копировать мои макросы в своё сообщение, тем более, что вы неправильно их оформляете. надо выделить код и нажать на VB в меню, читайте правила Добавлено через 12 минут пример ссылки на файл, который нужно копировать. Записать в ячейку А1 такую, например, строку d:\Papka1\Papka2\имя файла с расширением. В ячейку листа А2 и т.д. аналогично. Вы ведь так и хотели.
0
|
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
|
23.02.2020, 09:39 [ТС] | 14 |
Hugo121, а можете скинуть рабочий вариант, буду очень благодарен
0
|
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
|
|
23.02.2020, 14:39 | 15 |
Сообщение было отмечено Strashnoslav как решение
Решение
Да в тот же добавить просто в модуль (тот или другой, не важно) первой строкой эту указанную строку и всё работает.
Добавлено через 11 минут В тот что в пример.rar
1
|
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
|
23.02.2020, 19:11 [ТС] | 16 |
Спасибо. Модуль добавлял, но почему-то не выполнялось, сейчас заново все вставил и заработало. Всех мужчин с праздником!!!!
0
|
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
||||||
04.03.2020, 23:01 [ТС] | 17 | |||||
Всем доброго времени суток. Не подскажите как игнорировать повторяющиеся строки имен при переименовании
Например e:\123\1\11\1.docx e:\123\1\11\11.docx e:\123\1\11\1.docx e:\123\1\11\12.docx пропускал повторяющуюся строчку исходного имени, даже если новое имя другое
0
|
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
|
|
05.03.2020, 01:46 | 18 |
Думаю самое правильное - такого не допускать, если это не нужно. Потому что в принципе это вполне возможно что нужны дубли файлов в разных каталогах.
Но если уж есть - можно например сперва удалить дубликаты по этому столбцу. Или если вот прямо тут в коде - привлечь коллекцию (с ключами) или словарь. Проще код на словаре. Если повтор sFileName - пропускаем.
0
|
0 / 0 / 0
Регистрация: 10.03.2019
Сообщений: 111
|
||||||
06.04.2021, 15:54 [ТС] | 19 | |||||
Доброго времени суток. Не подскажите, как сделать чтобы при несовпадении полного исходного имени, переходил к следующей строке:
0
|
6930 / 2838 / 545
Регистрация: 19.10.2012
Сообщений: 8,670
|
|
10.04.2021, 22:00 | 20 |
0
|
10.04.2021, 22:00 | |
10.04.2021, 22:00 | |
Помогаю со студенческими работами здесь
20
Переименовать файлы в папках по имени папки Как переименовать файлы во вложенных папках данной папки? Найти файл лога в папках пользователя, переименовать и переместить его в другую папку Две таблицы dBase в разных папках Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |