Vba переименовать файлы в папке

Vba переименовать файлы в папке

У меня есть проект VBA, где он автоматически создает папку для некоторых конкретных категорий данных на основе их данных имен и идентификаторов (имя папки будет ID_CategoryName). Поэтому, когда я изменить или обновить название категории, я также хочу, чтобы изменить имя папки, чтобы представить новое имя.

Я использую синтаксис оператора Name переименовать папку , как показано ниже:

Проблема: Это работает для пустых папок и переименовывает их, однако папки , содержащие файлы возвращает меня Ошибка 75 Ошибка доступа / файла

Решение: Я обнаружил , что сама проблема с переименованием папок в моих окнах после того, как я копирую файлы Microsoft Office (экземпляр Слова открывается в диспетчере задач). Однако я выбрал решение @Ashleedawg как было бы решить мою проблему , или кто — либо еще за имя , как заявление, и это также помогает мне в дальнейшем при проверке , если кто — то использует папки / файлы или нет (для общих дисков).

Дополнительная информация:

1- Не уверен , что если вопрос является дубликатом, однако все вопросы я нашел относительно папки переименования в VBA (здесь , в StackOverflow) используют другой метод (FileSystemObject). Если кто — то знающий может сказать мне разницу в использовании Имя As или FileSystemObject

2- я тестировал следующую строку в окне Immediate:

Это возвращает меня «1_Category1», доказывая существование каталога

3 Есть ли более эффективный способ для переименования папок / файлов?

4- я сделал некоторые ручное тестирование с синтаксисом Именем на немедленном окне. Я положить файл в папку, просто перетаскиванием или с помощью Ctrl + C, а некоторые файлы дает мне ошибку, а другие нет. Пример, я положил PDF или файл Word , с 300Кб и всякий раз , когда я бегу Имя ThatFolder Как ThatFolder2 он дает мне ошибку.

5 Когда я открыть диспетчер задач он говорит , что есть экземпляр Microsoft Word Open, даже если он не отображается в моем интерфейсе Windows. Когда я закончить процесс я могу переименовать папку. Так что похоже , когда я скопировать файл это вид открывает экземпляр этого приложения , и что остается открытым.

6 Там нет открытых файлов в папке, однако у меня есть другой код , который выполняется непосредственно перед ним , который использует объекты в папке. На мероприятии listbox_click , который обычно выбирается , когда вы меняете имя папки.

Метод RenameFile объекта My.Computer.FileSystem можно использовать, чтобы переименовать файл, указав текущее расположение, имя файла и новое имя файла. Use the RenameFile method of the My.Computer.FileSystem object to rename a file by supplying the current location, file name, and the new file name. Этот метод нельзя использовать для перемещения файла. Для перемещения и переименования файла используется метод MoveFile . This method cannot be used to move a file; use the MoveFile method to move and rename the file.

Переименование файла To rename a file

Используйте метод My.Computer.FileSystem.RenameFile , чтобы переименовать файл. Use the My.Computer.FileSystem.RenameFile method to rename a file. В этом примере переименовывается файл с именем Test.txt в SecondTest.txt . This example renames the file named Test.txt to SecondTest.txt .

Этот пример кода также доступен в качестве фрагмента кода IntelliSense. This code example is also available as an IntelliSense code snippet. В средстве выбора фрагментов кода фрагмент находится в разделе файловая система: обработка дисков, папок и файлов. In the code snippet picker, the snippet is located in File system — Processing Drives, Folders, and Files. Дополнительные сведения см. в статье Фрагменты кода. For more information, see Code Snippets.

Читайте также:  Nvidia geforce gtx 1060 для ноутбука

Отказоустойчивость Robust Programming

При следующих условиях возможно возникновение исключения: The following conditions may cause an exception:

Путь является недопустимым, так как он представляет собой строку нулевой длины (пустую строку), либо содержит только пробелы, либо содержит недопустимые знаки, либо представляет собой путь к устройству (начинается с символов \.) (ArgumentException). The path is not valid for one of the following reasons: it is a zero-length string, it contains only white space, it contains invalid characters, or it is a device path (starts with \.) (ArgumentException).

newName содержит сведения о пути (ArgumentException). newName contains path information (ArgumentException).

Путь не является допустимым, поскольку он равен Nothing (ArgumentNullException). The path is not valid because it is Nothing (ArgumentNullException).

Параметр newName имеет значение Nothing или является пустой строкой (ArgumentNullException). newName is Nothing or an empty string (ArgumentNullException).

Исходный файл является недопустимым или не существует (FileNotFoundException). The source file is not valid or does not exist (FileNotFoundException).

Имеется существующий файл или каталог с именем, указанным в newName (IOException). There is an existing file or directory with the name specified in newName (IOException).

Длина пути превышает максимальную длину, определенную в системе (PathTooLongException). The path exceeds the system-defined maximum length (PathTooLongException).

Имя файла или каталога в пути содержит двоеточие (:) или имеет недопустимый формат (NotSupportedException). A file or directory name in the path contains a colon (:) or is in an invalid format (NotSupportedException).

У пользователя отсутствуют необходимые разрешения на просмотр пути (SecurityException). The user lacks necessary permissions to view the path (SecurityException).

У пользователя отсутствует необходимое разрешение (UnauthorizedAccessException). The user does not have the required permission (UnauthorizedAccessException).

Надстройка предназначена для переименования файлов в заданной папке.

В качестве исходных данных (исходные и конечные имена файлов) выступает таблица Excel

В настройках программы задаётся, в каких столбцах таблицы Excel брать имена файлов.
При необходимости, можно указать префикс и суффикс для имен файлов.

После запуска надстройки, на ленте Excel на вкладке НАДСТРОЙКИ появляется панель инструментов.

Порядок работы:

  1. открываете таблицу Excel, содержащую старые и новые имена файлов в разных столбцах
  2. запускаете надстройку, на ленте Excel появится вкладка НАДСТРОЙКИ
  3. нажимаете кнопку НАСТРОИТЬ, и указываете, в каких столбцах содержатся имена файлов,
    а также задаёте пути к папке с картинками, и к папке, куда будут копироваться файлы под новыми именами
  4. нажимаете кнопку СКОПИРОВАТЬ / ПЕРЕИМЕНОВАТЬ ФАЙЛЫ

По окончании работы, появится информационное сообщение такого вида:

  • 17801 просмотр

Комментарии

Добрый день, Игорь! Нам нужна программа по массовому переименованию файлов в Excel
Вы можете эту программу написать?

С учетом всего этого, проще заказать написание отдельного макроса.
Высылайте задание на почту

Читайте также:  Fortnite mobile официальный сайт андроид

А ещё, оказывается, есть ".jpg", а есть ".jpeg" — жесть. Не пойму, почему она (программа) не может игнорировать расширение. 2 файла с ОДИНАКОВЫМ именем, но РАЗНЫМ расширением МОГУТ присутствовать в одной папке! Так пусть оба/три/пять и переименовывает-не? Тем более есть проверка по маске…
И, напоследок, поля "суффикс" ОБЯЗАТЕЛЬНЫ. Нельзя сейчас не указать расширение. Кроме того, ища jpeg и переименовывая его в pdf, получаем нерабочий файл — офигенный фокус)))))))))
А программа-то классная и нужная — очень много людей её будет брать, если её показать людям (нашёл совсем случайно) и доработать до нормального состояния.
Лично я бы заказал мест на 5-6, но только после доработок. Может я, конечно, что-то не понимаю, но тогда объясните, пожалуйста…

Здравствуйте! Планирую в понедельник покупку программы, однако кое-в-чём не могу разобраться…

1. Может ли она переименовывать/копировать без учёта расширения? У меня в папке файлы ".pdf" и ".jpeg" (одностраничные в жпеге, а многостраничные в пдф).

2. У таблиц обычно есть шапка. Можно ли добавить в программу возможность задавать, с какой строки идут данные (2-по умолчанию) и возможность работать с предварительно выделенным двумерным диапазоном (2 столбца).

Здравствуйте, Александр
Проще (и дешевле) будет отдельный макрос написать, — если вам надо перемещать / переименовывать папки
(чем программу переделывать — переделок слишком много будет)
Оформляйте заказ, прикрепляйте примеры файлов, и подробно описывайте, что и как должно работать.

Здравствуйте!
Давно пользуюсь Вашими программами по рабочей необходимости.
Скажите пожалуйста — сколько будет стоить программа по перемещению/копированию файлов с небольшой доработкой — с возможностью делать выбор: в настройках указать один адрес или там же указать столбец с адресами папок.
Папок бывает много, FilenamesCollectionEx.xls успешно собирает имена с адресами, а далее надо переименовать и переместить всё это дело. Вот тут и начинается ковыряние по папкам.
Спасибо!
С Уважением, Александр.

Помогите пожалуйста!
например, надстройка отсюда открылась и появилась в ленте Exel http://excelvba.ru/programmes/Unification
а настройка о которой идет речь в этой ветке (переименование файлов) никак не появляется ни на одном компьютере. Везде стоит 2007 exle

Пока эту опцию я не стал включать (хоть в плане кода это просто)
При копировании файлов (как это работает сейчас), исходные файлы не могут быть утеряны.
А вот при перемещении файлов, возможна их потеря (если 3 разных исходных файла получают одинаковое имя, — из 3 файлов получится один. и если исходные файлы были разными, и была допущена ошибка с повторяющимися новыми именами файлов, — исходные файлы будут утеряны безвозвратно)
Пока спрос на программу невелик, доработки её не планируются.
Если же программа будет продаваться, — добавится и эта опция, и другие новые возможности.

Почему Настройка "Перемещать файлы вместо копирования" неактивна? Галочка не ставится. Как ее сделать активной?

Если вы не доверяете мне (моим программам), и на 100% доверяете антивирусу (подразумевая, что ложных сработок быть не может), — просто не пользуйтесь моими программами.
Время от времени все антивирусы там что-то находят, — пока им в техподдержку не напишешь.

Читайте также:  1 Триллион долларов это

Это не тролинг и не попытка довести модератора сайта. Сама задумка очень полезная и я бы даже сказал необходимая в работе. Просто хотелось бы получит рабочий, не зараженный файл. Пусть даже на платной основе. Но тут факт на лицо. Файл скачивается с трояном, а после лечения перестает работать.

Нет. Касперский, как и другие известные антивирусы, никакой проблемы в файле не видят:
https://virustotal.com/ru/file/16a2aaebb05fcecefb02dbfa7b771913fe6dbed25.
(на 6 красных строк по ссылке внимание не обращайте — это жалкие подобия антивирусов)

PS: если считаете, что в файле есть вирус, — просто не пользуйтесь программой

Как раз касперский и говорит, что файл ЗАРАЖЕН!

Не обращайте внимания, — это должная сработка на систему обновления программы.
Проверьте программу нормальным антивирусом (например, Касперским)

Антивирус пишет троян Trojn.Generic:heur.macro.download.gen

Добрый день. У меня вот такое сообщение появляется "Для этой книги недоступны проект VBA, элементы управления ActiveX и остальные программные средства" и программа не появляется в панели надстроек. Использование макросов разрешила. Эксель 2007. Что делать? На сайте ответ не нашла. Спасибо.

Александр, можем сделать макрос под заказ (или этот доработать), чтобы поиск шел без учёта знаков препинания.
А что касается схожести наименований, — такое никогда не делал и не буду.

Программа хорошая, только вот ищет по 100% совпадению, как быть если в экселе в наименовании имеются знаки типа " ? а в названии картинок их нет. Есть решение. То бишь сопоставление файлов по текстовому значению, без знаков припинания или скажем по схожести наименований в процентном соотношении процентов 90%

Все работает все круто.

Как переименовать группу папок в директории этой надстройкой?

Программа не странная
Панель инструментов программы — на ленте Excel на вкладке НАДСТРОЙКИ (вы просто её не заметили)
В статье же есть скриншоты, да и написано, что произойдет при запуске программы.
Количество запусков можно увеличить, — там есть еще опция 48-часового безлимита по запускам

Странная программа. У меня она не разу не открылась, был только серый экран Excel. Я ее попытался открыть раз 10 и скачивал наверное раз 5 так ни чего не открыл и собственно ни чего не увидел.
Но зато на 11 раз попыток открыть этот файл получил смешное сообщение, что "Лимит бесплатных запусков программы исчерпан" я конечно ценю чувство юмора) но наверное с программой что-то пошло не так.

Почему то Настройка "Перемещать файлы вместо копирования" неактивна. Я так понимаю она делала бы так, что исходные файлы заменялись бы переименованными?

Так, по сути, надстройка это и делает.
Просто чтобы не было путаницы, когда все часть файлов переименовалась, а часть нет, и всё в одной папке, — я сделал вывод переименованных файлов в отдельную папку.

а только переименовывать надстройка умеет?

Так там все просто, — задать папку в настройках, открыть файл Excel с 2 столбцами (старое и новое имя файла), и нажать кнопку запуска.

Чёт не получается у меня ничего, заполнял как только мог, не хочет переименовывать +( помогите

Ссылка на основную публикацию
Adblock detector