Предположим, у вас есть список имен сотрудников в диапазоне рабочего листа, и теперь вы хотите создать несколько папок для каждого из них в ячейках для записи их информации. Если вы будете создавать папки одну за другой, это займет много времени. Но как быстро создать эти папки? Сегодня я расскажу вам несколько простых приемов:
Создавать папки на основе значений ячеек с кодом VBA
Быстро создавайте папки на основе значений ячеек с Kutools for Excel
Создавать папки на основе значений ячеек с кодом VBA
Например, у меня есть диапазон имен на листе, я хочу создать папки для каждого из них и сохранить их по указанному пути, с кодом VBA я могу завершить эту задачу.
1. Поместите активную книгу в определенный каталог, в который вы поместите созданные папки. Откройте книгу и выберите диапазон ячеек, который вы хотите использовать.
2. Нажмите Застройщик > Визуальный Бейсик, Новый Microsoft Visual Basic для приложений появится окно, щелкните Вставить > Модули, и введите в модуль следующий код:
Код VBA: создание папок на основе значений ячеек
Sub MakeFolders()
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 Len(Dir(ActiveWorkbook.Path & "" & Rng(r, c), vbDirectory)) = 0 Then
MkDir (ActiveWorkbook.Path & "" & Rng(r, c))
On Error Resume Next
End If
r = r + 1
Loop
Next c
End Sub
3. Нажмите кнопку для выполнения кода. Все выбранные ячейки были созданы в папки со своими значениями. И папки помещаются в путь так же, как активная книга. Смотрите скриншот:
Быстро создавайте папки на основе значений ячеек с Kutools for Excel
Вам легко и удобно создавать папки на основе значений ячеек, если вы используете инструмент- Kutools for Excel.
После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)
1. Выберите диапазон, в котором вы хотите создать папки.
2. Нажмите Кутулс Плюс > Импорт / Экспорт > Создание папок из содержимого ячеек…, См. Снимок экрана:
3. В Создание папок из содержимого ячеек диалоговое окно, нажмите кнопку, чтобы указать путь, по которому вы хотите сохранить папки. Видно скриншот:
4. Нажмите OK. И окно подсказки напомнит вам, сколько папок было создано. Смотрите скриншот:
5. Нажмите OK. И все значения в выбранном диапазоне были созданы папками в указанной папке.
Перечислить все имена файлов из папки в лист
чтобы узнать больше об этой функции.
Вот утилита в Kutools for Excel – Список имен файлов может перечислить все имена файлов папки на листе, если он вам интересен, продолжайте читать.
После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)
1. Нажмите Кутулс Плюс > Импорт/Экспорт > Список имен файлов.
2. в Список имен файлов диалоговом окне выберите папку, в которой вы хотите отобразить ее файлы, установите флажок Все файлы or Указывать вариант, как вам нужно в Тип файлов sдействие.
img src=»//cdn.extendoffice.com / images / stories / doc-excel / create-folder / doc-create-folder-6.png «alt =» doc create folder 6 «/>
3. Нажмите Okсоздается новый лист со всеми именами файлов и некоторой относительной информацией.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Доброго времени суток, Уважаемые!
Столкнулся с задачей похожей на вышеизложенную, но с маленьким нюансом.
Суть такова:
Необходимо создать некое подобие базы данных. В идеале должно выглядеть как папка с названием, предположим «Объект», в котором будет Excelевский файл и папка «Фотографии».
В Excelевском файле будет некая информация и два столбца с данными (столбцы будут содержать данные типа 1,2,3..n и 1-2,2-3,3-4…m). А в папке «Фотографии» будут соответственно папки с названиями «1»,»2″,»3″…»n», «1-2″,»2-3″…»m». (как сделать такую вещь с помощью вышеизложенного варианта я понял) Идем дальше. Нужно сделать так, что бы при нажатии на ячейку с данными, например «1», открывалась папка «1»?
Вариант с гиперссылками пробовал. Вот в таком виде » =ГИПЕРССЫЛКА(«D:ОбъектФотографии»&A7&»») » в ячейке А7 стоит число 1. Потом протянув ячейку вниз получаем ссылки на А8,А9…и т.д. Способ хорош если эта база стационарна и находится в одном месте. При перемещении папки «Объект» в другую директорию, в первой ячейке где гиперссылка нужно вручную прописать новый путь, а потом протянуть по всему столбцу. Это очень неудобно, потому как планируется довольно частое копирование папки Объект другим пользователям. В каждом файле порядка 300 строк, а папок «Объект» будет в районе сотни…
И в итоге нужно что бы при перемещении папки «Объект» ссылки не сбивались и не нужно было вручную править пути.
Если у кого-то будут идеи и решения по этому поводу, буду премного благодарен!!!
Только если можно поподробнее…а то я в макросах…не очень…
Добавлено через 1 час 37 минут
Все-таки я допустил неточность…
Если сделать обычную гиперссылку на папку «1» из ячейки с данными 1, то при условии перемещения папки «Объект», содержащей Экселевский файл и папку «Фотографии», гиперссылки сохраняются. Проблема только в том, что бы автоматизировать присвоение гиперссылок ячейкам с другими данными (на подобии как » =ГИПЕРССЫЛКА(«D:ОбъектФотографии»&A7&»») » и протянуть вниз). Ибо при наличии порядка 300 ячеек с данными, присваивать каждой гиперссылку вручную… а папок «Объект» порядка сотни….
Добавлено через 22 минуты
И еще один вопрос, что нужно изменить в коде макроса по созданию папок, что бы, например папка Фотографии и вложенные в нее папки с именами из Экселевского файла, создавались при запуске макроса в той директории где в данный момент находится папка?
Коллеги, Добрый день! Помогите решить задачку. Из столбца G или H взять название строки, и создать папку с таким же именем например на рабочем столе . Папки нужны для каждой строки. |
|
tolstak Пользователь Сообщений: 471 |
#2 05.09.2017 12:53:34 tairov-vladimir, посмотрите тут. Upd. Простите, не внимательно прочитал пост, там немного другое
Модификация для создания папок на рабочем столе:
Прикрепленные файлы
Изменено: tolstak — 05.09.2017 13:08:38 In GoTo we trust |
||||
Скажите а есть возможность создавать папки по указанному пути?? |
|
vikttur Пользователь Сообщений: 47199 |
#4 05.09.2017 13:39:35
|
||
vikttur, то есть в коде от tolstak меняем первые две строки? |
|
tolstak Пользователь Сообщений: 471 |
#6 05.09.2017 13:49:56
Изменено: tolstak — 05.09.2017 13:50:04 In GoTo we trust |
||
tolstak, получается но не то что хотелось бы, видимо не правильно изложил суть. как сделать так чтобы папка создавалась конкретно для одной выбранной ячейки, но такая возможность была у каждой ячейки. |
|
tolstak Пользователь Сообщений: 471 |
#8 05.09.2017 14:43:13 tairov-vladimir,
Прикрепленные файлы
In GoTo we trust |
||
Здравствуйте. |
|
Имеется в виду путь из строки 11? |
|
vikttur Пользователь Сообщений: 47199 |
Path not found — нет такого пути. |
tolstak Пользователь Сообщений: 471 |
#12 04.10.2017 14:05:19 DmitriyBastr, вероятно, у Вас не создана корневая папка. В сообщении #8 папка по пути «C:UsersuserDesktopЕРЕМИАСНовая папкаЦ-108-30.08.3018-М-4» будет создана, если существует папка «C:UsersuserDesktopЕРЕМИАСНовая папка».
Да, или путь, указанный в всплывающем диалоге «Куда сохранять» Изменено: tolstak — 04.10.2017 14:12:52 In GoTo we trust |
||
Прописал в коде свой путь «C:UsersuserDesktop2» |
|
tolstak Пользователь Сообщений: 471 |
DmitriyBastr, пропишите с последним символом — слешем — «C:UsersuserDesktop2«, должно помочь. |
«» есть, я его в сообщении просто не написал… |
|
vikttur Пользователь Сообщений: 47199 |
#16 04.10.2017 14:43:07 Ну, диск С у Вас, надеюсь, есть?
|
||
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
#17 04.10.2017 14:45:01
Почему не писали? Чтобы проверить, заметят ли форумчане эту ошибку? |
||
Всё… Разобрался… Заработало |
|
… Все-таки продолжу… |
|
tolstak Пользователь Сообщений: 471 |
#20 04.10.2017 15:52:53 DmitriyBastr, уберите из кода эту строку:
In GoTo we trust |
||
argyman Пользователь Сообщений: 45 |
#22 22.05.2019 11:43:28 tolstak, Добрый день! при запуске этого макроса, Excel зависает минут на 5, это нормально? Помогите пожалуйста
Прикрепленные файлы
|
||
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
Для начала проверьте букву «С» в ячейке А1 |
argyman Пользователь Сообщений: 45 |
Юрий М, спасибо исправил, но макрос все равно зависает на минут 5 |
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
Так у Вас в примере цикл перебирает все ячейки столбца, а это 1 048 576 строк. |
junato Пользователь Сообщений: 4 |
Добрый день. Кто может помочь на форуме нашел, что кто-то уже организовывал создание подпапок но только до 2-го уровня. Так как я не владею VBА на должном уровне помогите пожалуйста чтобы создавались папки до 4 уровня. Я привел примеры. |
Ян Андреевич Пользователь Сообщений: 1 |
#27 10.08.2022 17:21:05 Здравствуйте, не хотелось плодить дополнительных тем, поэтому пишу здесь: при этом важная задача: привязывать создаваемые папки к региону . а не сохранять в рандомных местах. Наименование создаваемой папки формируется из столбца 3,2 , 4 и 5. изначально хотел добавить, чтобы формировалась главная папка с привязкой к году. но от этой идеи отказался. Прикрепленные файлы
|
If you have a spreadsheet and want to create multiple folders from the Excel spreadsheet’s values, you can follow this tutorial. Whether you use the Excel desktop app, Excel Online, or Google Sheets, you can use this tutorial to get the same results.
Let’s assume that you have a list of names alongside some other data in an Excel spreadsheet. Meanwhile, you want to make folders after each name mentioned in a column. Instead of creating them manually, which is very time-consuming, you can use a simple method to create multiple folders at once from Excel cell values. As you already have the Notepad app on your computer, you do not need anything else to get the job done.
Before getting started, you should know a few things that must be cleared. Let’s say you have a spreadsheet containing three columns and five rows. If you follow this method, you will end up creating five folders, and each folder will contain two sub-folders. It is possible to add or remove more sub-folders, but that requires manual work.
We have shown the steps in a demo spreadsheet. In other words, we have mentioned Column A, B, and so on to simplify the steps. However, you need to do the same in a specific column/row/cell according to your spreadsheet. As per this following guide, Column B will be the primary folder, and Column C, D, etc., will be sub-folders.
To create multiple folders at once from Excel, follow these steps-
- Open the Excel spreadsheet.
- Right-click on Column A and select the Insert option.
- Enter MD in all cells.
- Enter as a prefix in all cells except Column A and B.
- Select all cells and paste them into Notepad.
- Select space and combination visible before all the C, D, or rest of the columns.
- Go to Edit > Replace.
- Enter the copied content in the Find what box.
- Enter in the Replace with box.
- Click the Replace All button.
- Go to File > Save As.
- Select a path, enter a name with .bat extension, and click the Save button.
- Move the .bat file to a place where you want to create all folders.
- Double-click on it.
Let’s check out these steps in detail.
At first, open your Excel spreadsheet. However, it is recommended to make a copy of this sheet as you are going to make a few changes to the original spreadsheet.
After opening, you have to enter a new column in the beginning. For that, right-click on the existing Column A and select the Insert option.
Now, enter MD in all the cells in Column A.
Next, you have to enter ‘’ as the prefix in all cells of Column C, D, and all the other columns that you want to include. For that, you can follow this detailed guide to enter prefixes in all cells in Excel.
Then, copy all the cells, open the Notepad app, and paste it there. You have to remove the space between Column B and C, and so forth. For that, copy the portion containing the space and > go to Edit > Replace, and paste it in the Find what box.
Enter in the Replace with box, and click the Replace All button.
Now, you can find the entries like this-
Click the File > Save As option, choose a path where you want to save the file, enter a name with .bat extension (for example, myfolders.bat), and click the Save button.
Now, move the .bat file to a location where you want to create all the folders and double-click on it. Depending upon how many cells you selected, it might take 10-15 seconds to get the job done.
That’s all! Do let us know if you have any doubt in the comments.
Related: How to create multiple folders at once in Windows.
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
Оригинальный скрипт взят отсюда.
http://excelspreadsheetshelp.blogspot.ru/2016/05/how-to-create-folders-with-hyperlink.html
Еще по теме Excel macro:
- Как работать со скриптами в эксель
- Эксель — печатаем группы вкладок скриптом