Как создать папки по списку из excel
Перейти к содержимому

Как создать папки по списку из excel

Создание папок из списка Excel

У меня есть адреса в листе excel B2-B40. Номера в C2-C40. И оба эти столбца окрашены в красный и зеленый цвета в разных рядах.

То, что я пытаюсь сделать, это:

Для создания папок Master с разными номерами (столбец C). Каждая основная папка с уникальным номером 2, 3, 5, 8 и т. д.

Внутри каждой основной папки две разные папки, красная и зеленая. т.е. внутри 2 две отдельные папки, красная и зеленая.

Внутри пронумерована основная папка, затем красная (или зеленая) папка, папка того адреса (который под нее попадает). Пример B2, адрес — 124 X lane, соответствующий номер в столбце C2 — 9. И B2, и C2 выделены красным цветом.

Таким образом, папка должна быть создана как: «9» Внутри этого «Красного» внутри этого «124 x lane».

Таким образом, цикл должен прочитать все адреса и создать главные папки внутри этих двух цветных папок и внутри этих всех соответствующих адресов по цвету и номеру.

То, что я сделал, было (VBSCRIPT)

Что он сделал, так это создал все папки с адресами, но все внутри тестовой папки. Но я не могу изменить его в соответствии со своими потребностями.

Excel — папки из ячеек с гиперссылками

В рамках одной из задач понадобилось создать папки с именами позиций заведенных в эксельку. Так как набралось больше сотни строк, да и в дальнейшем список грозит расширятся выполним эту задачу с помощью скрипта. Заодно добавим гиперссылок так, чтобы к каждой позиции у нас был доступ прямо из Эксель.
На выходе получаем список папок в экселе с со ссылками чтобы можно было их, папки, сразу открыть.

Sub Create_Folders()
‘для корректной работы необходимо выбрать ячейки перед тем как запустить макрос.
Dim OpenAt As String ‘Зададим каталог для папок по умолчанию.
OpenAt = «My computer:\»
‘Вызовем диалог для выбора места папок.
Set ShellApp = CreateObject(«Shell.Application»).BrowseForFolder(0, «Please Choose The Folder For This Project», 0, OpenAt)
‘Устанавливаем выбранную папку в качестве рабочей. (в случае ошибки отменяем процесс)
On Error Resume Next
BrowseForFolder = ShellApp.Self.Path
‘Выхватываем список выбранных ячеек.
Dim Rng As Range
Dim maxRows, maxCols, r, c As Integer
Set Rng = Selection
maxRows = Rng.Rows.Count
maxCols = Rng.Columns.Count
‘—в цикле проходим все ячейки в нашем—
For c = 1 To maxCols
r = 1
Do While r <= maxRows
‘Если в ячейке есть какой то значение то создаем папку с этим знчением
If Rng(r, c) <> «» Then
‘а на ячейку накидываем гиперссылку на папку с этим именем.
Dim cnf
Set cnf = CreateObject(«Scripting.FileSystemObject»)
‘Если папка с таким именем по нашему пути уже существует, то просто добавляем гиперссылку.
If (cnf.FolderExists(BrowseForFolder & «\» & Rng(r, c))) Then
‘MsgBox «folder does already exist»
ActiveSheet.Hyperlinks.Add Anchor:=Rng(r, c), Address:=BrowseForFolder & «\» & Rng(r, c)
‘if folder does not previously exist, then we need to create it and add hyperlink
Else
‘Сообщение «need to create folder»
cnf.CreateFolder (BrowseForFolder & «\» & Rng(r, c))
ActiveSheet.Hyperlinks.Add Anchor:=Rng(r, c), Address:=BrowseForFolder & «\» & Rng(r, c)
End If
On Error Resume Next
‘если в ячейке пусто то ничего не делаем, идем на следующую ячейку
End If
r = r + 1
Loop
Next c
End Sub

Оригинальный скрипт взят отсюда.

Еще по теме Excel macro:

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Как создать папки по списку из excel

Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль

Поиск по форуму
Расширенный поиск
К странице.

Вопрос простой, даже понимаю примерно, что нужно использовать функцию MkDir.

Есть список названий деталей в столбце А. Нужно создать для каждого из них папку.
1. Если есть повтор — Пропусти.
2. Если есть не корректное имя для папки — Выдай окно с его названием. При ОК продолжай.
3. Точный Patch для места этих папок можно сделать постоянным, лучше конечно переменным.

Добавить комментарий

Ваш адрес email не будет опубликован.