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

Обновлено: 08.07.2024

Как известно, VBA-функция MkDir может создать только папку в существующем каталоге (папке).

Например, код MkDir "C:\Папка\" отработает корректно в любом случае (создаст указанную папку),
а код MkDir "C:\Папка\Подпапка\Каталог\" выдаст ошибку Run-time error '76': Path not found
(потому что невозможно создать каталог Подпапка в несуществующем ещё каталоге Папка)

Можно, конечно, использовать несколько функций MkDir подряд - но это усложняет код.

Самый простой способ решения проблемы - использование WinAPI-функции SHCreateDirectoryEx, которая может создать все нужные папки и подпапки за один запуск.

Пример использования функции SHCreateDirectoryEx:

Комментарии

Ну, например нужно создать 20 папок и еще подпапки. Сделать это за 1 клик или несколько, думаю разница очевидна-экономия времени

А какая разница, сразу или по очереди?
В любом случае это выполнится почти моментально.

А если нужно создать сразу несколько папок и подпапки в указанной директории по списку в эксель, это реализуемо?

Работает. Отлично работает.
На вопрос по Declare есть ответ пятью комментариями ниже

Не работает. Вообще.
B на вопрос о Declare полтора года нет ответа . печально что-то

а что делать если на такую строку кода:

Declare function SHCreateDirectoryEx Lib "shell32" Alias "SHCreateDirectoryExA" (ByVal hwnd As Long, ByVal pszPath As String, ByVal psa As Any) As Long

система реагирует ошибкой : Sub or function not defined?

Красиво, но в макросах Outlook не завелось.
Написал через FileSystemObject

Вася молодец! набросал себе процедуру для создания подкаталогов. Лишний раз API дёргать не буду.

Тот же макрос, только надо первую строку написать так:

Здравствуйте, а для 64-битного офиса есть такие фишки?

Скажите пожалуйста , а как ещо добавить гиперлинк на созданую папку

Большое спасибо, очень помогли.

Sub mkdir2(Путь$)
Set FSO = CreateObject("Scripting.FileSystemObject")
a = Split(Путь, "\")
For i = 0 To UBound(a)
If a(i) <> "" Then
aa = aa & a(i) & "\"
If FSO.FolderExists(aa) = False Then MkDir aa
End If
Next
End Sub

Спасибо Вам, попробую.

Здравствуйте, Иван.
Это не вопрос, это задание. Вопроса не вижу.

Вам на форуме не ответили по той же причине, - нет никакой конкретики (что именно у вас не получается)

Вот готовый код, - его надо только вставить в ваш файл, и запустить Макрос_который_нужно_запускать:

Сразу говорю, - если у вас не получится вставить макрос в свой файл, или запустить его, - помогать бесплатно не буду.

Доброго времени суток. У меня такой ворос. на диске D необходимо создавать папки из столбца А
(А1= папка1\подпапка2\
А2= папка2\подпапка 3\подпапка 4
и т.д.)

Друзья!
Такая ситуация:
Необходим создавать на диске D:\ папки и подпапки по значению ячеек двух соседних столбцов:
НАПРИМЕР:
D:\папка\подпапка\
если "папка"=А1. 100000, а "подпапка"=В1. 100000


Создание папок с именами столбцов в Excel
Доброго дня! Есть 2 вопроса) 1. Имеется таблица Excel вида: Малышева 8 Марта Восточная.

Создание папок в VBA Excel
Добрый день!Пожалуйста помогите с VBA Exсel 1.При начале нового дня создать новую папку с именем.

Создание папок VBA Excel
Добрый день!Пожалуйста помогите с VBA Exсel 1.При начале нового дня создать новую папку с именем.

Excel Создание коллекции классов при выделении ячеек
Доброго времени! Подскажите неграмотному в ООП, каким образом можно создать несколько классов для.

Спасибо большое, что откликнулись, но что мне с "этим" делать.
Если можно, чуточку поподробнее. Blakprizrak,
Откройте пустой файл Excel.
Сервис - Макрос - Начать запись - Сохранить в "Личная книга макросов" - ОК.
Введите букву "а" и нажмите Enter.
Сервис - Макрос - Остановить запись.
Сервис - Макрос - Редактор Visual Basic. Откроется редактор Visual Basic.
2 щ. левой кн. мыши по PERSONAL.XLS.
Щ. пр. кн. мыши по PERSONAL.XLS - Insert - Module.
Скопируйте с этого форума код, который написали вам, перейдите в редактор Visual Basic и вставьте текст в правую область, где мигает курсор
В 4 строке кода укажите место, где должны создавать папки:
Сохраните изменения.
Вставьте курсор в любое место кода и нажмите стрелку на панели инструментов, чтобы запустить код.
В выбранной вами папке должно появится 3 папки: Лист1, Лист2 и Лист3.
Если не появились, то может быть путь указали неправильно в коде.

Спасибо! Но я "чайник" во всем этом, можно попроще обьяснить как этим пользоваться, буду благодарен.

Добавлено через 10 минут

Blakprizrak,
Откройте пустой файл Excel.
Сервис - Макрос - Начать запись - Сохранить в "Личная книга макросов" - ОК.
Введите букву "а" и нажмите Enter.
Сервис - Макрос - Остановить запись.
Сервис - Макрос - Редактор Visual Basic. Откроется редактор Visual Basic.
2 щ. левой кн. мыши по PERSONAL.XLS.
Щ. пр. кн. мыши по PERSONAL.XLS - Insert - Module.
Скопируйте с этого форума код, который написали вам, перейдите в редактор Visual Basic и вставьте текст в правую область, где мигает курсор
В 4 строке кода укажите место, где должны создавать папки:
Сохраните изменения.
Вставьте курсор в любое место кода и нажмите стрелку на панели инструментов, чтобы запустить код.
В выбранной вами папке должно появится 3 папки: Лист1, Лист2 и Лист3.
Если не появились, то может быть путь указали неправильно в коде. Спасибо огромное. работает. тока путь другой не получается сделать, сохраняет в корень диска "С" Blakprizrak,
напишите сюда путь, куда вы хотите сохранить. Blakprizrak,
напишите сюда путь, куда вы хотите сохранить. Простите, туплю, забыл после названия папки наклонную поставить. Спасибо, спасли меня от психушки, сегодня пробывал вручную, на 50 моя крыша помохала мне ручкой

Добавлено через 1 час 37 минут
Все-таки я допустил неточность.
Если сделать обычную гиперссылку на папку "1" из ячейки с данными 1, то при условии перемещения папки "Объект", содержащей Экселевский файл и папку "Фотографии", гиперссылки сохраняются. Проблема только в том, что бы автоматизировать присвоение гиперссылок ячейкам с другими данными (на подобии как " =ГИПЕРССЫЛКА("D:\Объект\Фотографии\"&A7&"") " и протянуть вниз). Ибо при наличии порядка 300 ячеек с данными, присваивать каждой гиперссылку вручную. а папок "Объект" порядка сотни.

Добавлено через 22 минуты
И еще один вопрос, что нужно изменить в коде макроса по созданию папок, что бы, например папка Фотографии и вложенные в нее папки с именами из Экселевского файла, создавались при запуске макроса в той директории где в данный момент находится папка?

Всем привет, у меня задача схожая но есть нюанс
мне необходимо чтобы создавалась папка с названием из ячейки которая только что изменилась.

Например, я вписал в новую ячейку название контрагента Рога и Копыта в соседней ячейке указал форму собственности ООО перешел к следующей ячейке, в этот момент на диске С: создается папка С:\Рога и копыта, ООО\ то есть я вижу из предыдущих записей как создаются папки но не могу найти инфы как это сделать на вновь создаваемые ячейки?
Как указать адрес ячейки не абсолютно, вида Range([A1], [A65536].End(xlUp)) а относительно положения выделенной ячейки? Например у меня выделена ячейка P4 соответственно и ячейки для названия папки будут T4+E4

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

В сети Интернет можно найти разные способы получения списка файлов из папки, в том числе с использованием формул, макросов и специализированных надстроек. Но не для всех такие способы подходят в силу умения и имеющихся навыков.
Для себя я определил три действенных и простых способа как вывести список файлов из папки на лист Excel и использую их в зависимости от ситуации.

Всё по порядку!

Я не думаю, что сейчас есть пользователи Excel версии старше 2016 года и если они есть, то для них разберем тоже простой способ извлечения списка файлов из папки.

Способ номер Раз

Использование Power Query для получения списка имен файлов

Если вы используете Excel 2016, 2019 или Office 365 , то Вам потребуется всего пару кликов для того, что-бы вывести список файлов из папки на лист Excel

1. Во вкладке "Данные" выберете пункт "Создать запрос" затем из выпадающего списка выбираем пункт "Из файла" и далее "Из папки"

Как быстро вывести список имен файлов из папки на лист Excel?

2. В всплывающем окне указываем путь к папке в ручную или через кнопку "Обзор" . Затем нажимаем "Ок"

Как быстро вывести список имен файлов из папки на лист Excel?

3. В появившемся окне нажимаем кнопку "Загрузить"

Как быстро вывести список имен файлов из папки на лист Excel?

4. Получаем результат, который мы можем копировать, переносить, редактировать или сравнивать, всё зависит от вашей задачи.

Как быстро вывести список имен файлов из папки на лист Excel?

Чем удобен данный способ, вы можете обновлять список файлов в папке двумя кликами мыши. Для этого в любом месте таблицы кликните правой кнопки мыши и нажмите "Обновить"

Как быстро вывести список имен файлов из папки на лист Excel?

Способ номер Два

Вы используете Excel еще со времен 3,5 дюймовых дискет, ну или вам необходимо список вставить не в Excel , а в Word , тогда этот способ для вас.

1. Перейдите в папку, в которой находятся ваши файлы.

Как быстро вывести список имен файлов из папки на лист Excel?

2. В данной папке выделите все файлы мышью или сочетанием клавиш Ctrl+A

Для создания представления недостаточно создать папку в списке или управлять им в списках, созданных в Microsoft SharePoint, в приложении Списки в Microsoft 365 или Teams.

Создание папки в списке аналогично созданиюSharePoint библиотек. Но в списках невозможно создать папку, пока владелец списка или пользователь с разрешениями на проектирование не включит возможность создания папки:

Чтобы включить возможность создания папки

Перейдите в параметры списка > дополнительные параметры >папки.

В области Сделать команду "Новая папка" доступной?выберите Да.

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

По умолчанию для создания папки в списках используется команда Создать Microsoft 365 папки. Однако новая папка может быть недоступна, если владелец списка или администратор не включил эту функцию.

Перейдите на SharePoint со списком, в который вы хотите добавить папку.

Или Microsoft Teams на вкладке Файлы в верхней части канала выберите Дополнительные > Открыть в SharePoint.

Кнопка "Параметры" в форме шестеренки

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

Примечание: Ваш экран выглядит иначе и вы используете SharePoint ? Возможно, ваш администратор SharePoint классической работы в библиотеке документов. В этом случае см. создание папки в списке SharePoint классического впечатления.

На верхней панели инструментов выберите кнопку + Новый, а затем выберите папку в dropdown.

Кнопка "Параметры" в форме шестеренки

Примечание: Если команда + Новая папка не отображается, вы можете снова включить ее, по крайней мере, с разрешениями владельца или разработчика. Выберите Параметры , выберите Параметры списка, а затем выберите Дополнительные параметры. В разделе Папки выберите Да для команды Сделать команду "Новая папка" доступной. Затем обновите экран и повторите это шаг.

В диалоговом окке Папка введите имя папки в поле и выберите создать.

Примечание: Чтобы изменить имя папки, выберите много многоps и выберите изменить. Измените имя папки и нажмите кнопку Сохранить.

(Необязательно) Вы можете пригласить других людей поделиться папкой. Дополнительные сведения см. в статью Изменение разрешений для списка или библиотеки SharePoint и управление ими.

Совет: Вместо папокSharePoint представления, так как они позволяют фильтровать, группировать и сортировать содержимое различными способами. Если список длинный, оптимальным решением может оказаться сочетание представлений и папок. Чтобы создать представления, см. создание, изменение и удаление представления списка или библиотеки.

Создание папки в списке классического впечатления

Чтобы создать папку в классическом SharePoint, выполните указанные здесь действия.

Примечание: Если команда Новая папка недоступна, вы можете снова включить ее, если у вас есть по крайней мере разрешения владельца или разработчика. На вкладке Библиотека на ленте выберите библиотекаПараметры , а затем выберите Дополнительные параметры. Убедитесь в том, что в разделе "Папка" для параметра Сделать команду "Создать папку" доступной выбран вариант Да.

Перейдите на сайт SharePoint со списком, в который необходимо добавить папку.

Примечание: Разработчики могут существенно изменить вид сайта и навигацию по нему. Если не удается найти какой-либо элемент интерфейса, например команду, кнопку или ссылку, обратитесь к администратору.

На ленте выберите вкладку Элементы, а затем в группе Новые выберите пункт Новая папка.

Изображение вкладки ленты "Файлы" в SharePoint с выделенной кнопкой "Создать папку".

Примечание: Если команда Новая папка недоступна, вы можете снова включить ее, если у вас есть по крайней мере разрешения владельца или разработчика. На вкладке Список на ленте выберите Параметры идополнительные параметры. Убедитесь в том, что в разделе "Папка" для параметра Сделать команду "Создать папку" доступной выбран вариант Да.

Примечание: Чтобы изменить имя папки в дальнейшем, выберите многовеки . , затем — много далее. в диалоговом окне и выберите Переименовать. Измените имя папки в поле Имя и выберите сохранить.

В диалоговом окке Создание папки введите имя папки в поле Имя и выберите создать.

Создание папки вSharePoint Server 2016 или SharePoint Server 2013 списке

Владелец SharePoint списка или пользователь с разрешениями на проектирование может определить, отображается ли команда Создать папку, изменив дополнительные параметры.

Перейдите на SharePoint со списком, в который вы хотите добавить папку.

Примечание: Разработчики могут существенно изменить вид сайта и навигацию по нему. Если не удается найти какой-либо элемент интерфейса, например команду, кнопку или ссылку, обратитесь к администратору.

На ленте выберите вкладку Файлы, а затем в группе Новые выберите новая папка.

Изображение вкладки ленты "Файлы" в SharePoint с выделенной кнопкой "Создать папку".

Примечание: Если команда Новая папка недоступна, вы можете снова включить ее, если у вас есть по крайней мере разрешения владельца или разработчика. На вкладке Список на ленте выберите Параметры идополнительные параметры. Убедитесь в том, что в разделе "Папка" для параметра Сделать команду "Создать папку" доступной выбран вариант Да.

В диалоговом окке Новая папка введите имя папки в поле Имя.

Диалоговое окно "Создание папки" для списка

В SharePoint Server 2016 при желании вы можете пригласить людей поделиться папкой.

Когда все будет готово, выберите Создать или Сохранить.

Чтобы изменить имя папки в дальнейшем, выберите многовеки . , затем — много далее. в диалоговом окне и выберите Переименовать. Измените имя папки в поле Имя.

Чтобы быстро перейти на следующий уровень вверх в иерархии папок, на ленте выберите вкладку Список и выберите Перейти вверх.

Вместо папок SharePoint представления, так как они позволяют фильтровать, группировать и сортировать содержимое различными способами. Если список длинный, оптимальным решением может оказаться сочетание представлений и папок. Чтобы узнать, как создавать представления, см. создание, изменение и удаление представления списка или библиотеки.

Создание папки в SharePoint 2010 списке

По умолчанию команда Создать папку не отображается в списках. Владелец SharePoint или пользователь с разрешениями на проектирование списка может определить, отображается ли команда Создать папку, изменив дополнительные параметры списка.

Перейдите на сайт SharePoint со списком, в который необходимо добавить папку.

Выберите имя списка на панели быстрого запуска или выберите Действия сайта ,выберите Просмотреть весь контент сайта ,а затем в соответствующем разделе списка выберите имя библиотеки.

Примечание: Разработчики могут существенно изменить вид сайта и навигацию по нему. Если не удается найти какой-либо элемент интерфейса, например команду, кнопку или ссылку, обратитесь к администратору.

На ленте в разделе Инструменты списка выберите вкладку Элементы и в группе Новые выберите пункт Новая папка.

Примечание: Если у вас есть по крайней мере разрешения владельца или разработчика, вы можете включить папки для списка. На ленте > список Параметры > Дополнительные параметры, выберите Список. В области Сделать команду "Новая папка" доступной?выберите Да. Для этого у вас должны быть по крайней мере разрешения владельца или разработчика.

В диалоговом окке Новая папка введите имя папки в поле Имя и выберите ОК.

Вместо папок можно использовать представленияSharePoint, так как они поддерживают различные способы фильтрации, группирования и сортировки контента. Если список длинный, оптимальным решением может оказаться сочетание представлений и папок. Чтобы узнать, как создавать SharePoint представлений, см. создание, изменение и удаление представления списка или библиотеки.

Если вы не знаете, какая у вас версия SharePoint, см. статью Какая у меня версия SharePoint?

Читайте также: