Note: The other languages of the website are Google-translated. Back to English

Как вывести список всех папок и подпапок в Excel?

Вы когда-нибудь сталкивались с этой проблемой, когда перечисляли все папки и подпапки из указанного каталога на листе? В Excel нет быстрого и удобного способа получить имена всех папок в определенном каталоге сразу. Разобраться с этой задачей может вам эта статья.

Список всех папок и подпапок с кодом VBA

Вкладка Office позволяет редактировать и просматривать в Office с вкладками и значительно упрощает работу ...
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
  • Повторное использование чего угодно: Добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
  • Более 20 текстовых функций: Извлечь число из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
  • Инструменты слияния: Несколько книг и листов в одну; Объединить несколько ячеек / строк / столбцов без потери данных; Объедините повторяющиеся строки и сумму.
  • Разделить инструменты: Разделение данных на несколько листов в зависимости от ценности; Из одной книги в несколько файлов Excel, PDF или CSV; От одного столбца к нескольким столбцам.
  • Вставить пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона; Отправляйте персонализированные электронные письма нескольким получателям массово.
  • Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, периодичности и др .; Фильтр жирным шрифтом, формулы, комментарий ...
  • Более 300 мощных функций; Работает с Office 2007-2021 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.

стрелка синий правый пузырь Список всех папок и подпапок с кодом VBA

Если вы хотите получить все имена папок из указанного каталога, следующий код VBA может вам помочь, сделайте следующее:

1. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

Код VBA: список всех папок и имен вложенных папок

Sub FolderNames()
'Update 20141027
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs As Worksheet
Dim fso As Object, j As Long, folder1 As Object
With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Choose the folder"
    .Show
End With
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 5).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder1 = fso.getFolder(xPath)
getSubFolder folder1
xWs.Cells(2, 1).Resize(1, 5).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 5).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim SubFolder As Object
Dim subfld As Object
Dim xRow As Long
For Each SubFolder In prntfld.SubFolders
    xRow = Range("A1").End(xlDown).Row + 1
    Cells(xRow, 1).Resize(1, 5).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder.DateLastModified)
Next SubFolder
For Each subfld In prntfld.SubFolders
    getSubFolder subfld
Next subfld
End Sub

3, Затем нажмите F5 ключ для запуска этого кода и Выбрать папку появится всплывающее окно, затем вам нужно выбрать каталог, в котором вы хотите отобразить имена папок и подпапок, см. снимок экрана:

список-документов-имена-папок-1

4. Нажмите OK, и вы получите путь к папке и подпапкам, каталог, имя, дату создания и дату последнего изменения в новой книге, см. снимок экрана:

список-документов-имена-папок-1


Связанная статья:

Как перечислить файлы в каталоге на лист в Excel?


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (18)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо. Я использовал приглашение cmd, чтобы получить txt с моими папками, а затем скопировать его в Excel, но теперь вы упрощаете мне задачу :)
Этот комментарий был сведен к минимуму модератором на сайте
Что делать, если мне нужно создать ссылку также для папки, что я должен изменить в кодировке, и мы не можем создать кнопку и связать с ней ту же кодировку, поэтому это будет полезно для пользователей, которые не знают, как запускать макросы
Этот комментарий был сведен к минимуму модератором на сайте
Я сделал именно то, что вы просите. Я поместил логотип своей компании на рабочий лист, затем щелкнул по нему правой кнопкой мыши и назначил макрос (это код выше). Вы также можете вставить инструкции по использованию.
Этот комментарий был сведен к минимуму модератором на сайте
Этот код действительно спас положение. Спасибо, что поделились.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, я просто следовал вашим указаниям, но у меня возникают ошибки, когда я нажимаю F5 для запуска. В приведенной ниже ошибке выделяется «Dim xWs As Worksheet». Есть ли обновленный код, который я могу использовать? Ошибка компиляции: определяемый пользователем тип не определен
Этот комментарий был сведен к минимуму модератором на сайте
[quote]Здравствуйте, я просто следовал вашим указаниям, но у меня возникают ошибки, когда я нажимаю F5 для запуска. В приведенной ниже ошибке выделяется «Dim xWs As Worksheet». Есть ли обновленный код, который я могу использовать? Ошибка компиляции: определяемый пользователем тип не определенАвтор: Каралин[/quote] Используете ли вы надстройку Kutools или редактор MS Excel VBA? Поскольку я не использую надстройку, я не могу повторить вашу ошибку. Использование MS VBA Editor работает без ошибок.
Этот комментарий был сведен к минимуму модератором на сайте
Когда я запускаю этот код, он работает, но показывает только первую папку в той папке, которую я выбираю. Например, когда я запускаю код, я выбираю «C:\Users\Johnson\Music» (Примечание: у меня есть 70 папок в моей музыкальной папке). Когда код запускается, он показывает только первую папку, а затем перечисляет все папки внутри этого папка. Я хотел бы, чтобы он перечислил все папки внутри папки «Музыка».
Этот комментарий был сведен к минимуму модератором на сайте
Я с другими - работает до определенного момента.

Для меня этот момент заключается в том, что он создает новый s / s, детализирует папку, которую я показал (в ячейках A1), выделенную желтым цветом полосу в строке 2 с заголовками, за которыми ничего не следует!

Папка, на которую я смотрю, пуста, за исключением подпапок (т.е. файлов данных не существует), а подпапки вообще не отображаются.

Может ли кто-нибудь помочь мне перечислить подпапки и их файлы?
Этот комментарий был сведен к минимуму модератором на сайте
Я изменил его, чтобы добавить размер:



Имена подпапок()
'Обновление 20141027
Приложение.ScreenUpdating = False
Dim xPath как строка
Dim xWs как рабочий лист
Dim fso As Object, j As Long, folder1 As Object
С Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Выберите папку"
.Показать
Конец с
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Добавить
Установите xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 6).Value = Array("Путь", "Каталог", "Имя", "Дата создания", "Дата последнего изменения", "Размер")
Установите fso = CreateObject ("Scripting.FileSystemObject")
Установить папку1 = fso.getFolder(xPath)
папка getSubFolder1
xWs.Cells(2, 1).Resize(1, 6).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 6).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder (ByRef prntfld как объект)
Затемнить подпапку как объект
Dim subfld как объект
Dim xRow As Long
Для каждой подпапки в prntfld.SubFolders
xRow = Диапазон ("A1"). Конец (xlDown). Строка + 1
Cells(xRow, 1).Resize(1, 6).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder. DateLastModified, SubFolder.Size)
Следующая подпапка
Для каждого подкаталога в prntfld.SubFolders
getSubFolder subfld
Следующий подраздел
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Когда вы включаете функцию SubFolder.Size, сценарий больше не перечисляет все подпапки, а только первый уровень.
Как я могу указать размер и получить список всех подпапок?
Этот комментарий был сведен к минимуму модератором на сайте
Привет. Не могли бы вы помочь мне с кодом, который я изо всех сил пытаюсь найти.

Ниже приведены требования к коду.



1. VBA должен пройтись по всем папкам и подпапкам
и проверьте каждый тип файла. Пользователь должен только указать путь для
верхняя папка. Затем код должен проверить все папки и подпапки.
внутри верхней папки.



2. После проверки файлов код должен заархивировать все файлы
к которым не обращались более 3-х месяцев. Доступный период
что-то, что я должен быть в состоянии изменить в будущем, если потребуется. Должно
позвольте мне изменить его на 1 месяц или 5 месяцев, если потребуется.



3. После сжатия файлов код должен удалить
исходные файлы, которые были заархивированы.



4. Заархивированный файл должен быть сохранен по тому же пути, что и
исходный файл.
Этот комментарий был сведен к минимуму модератором на сайте
Отличный инструмент! После долгих поисков нашел эту точную игрушку :)
Этот комментарий был сведен к минимуму модератором на сайте
Как раз то, что мне было нужно, и совершенно четкие инструкции, как заставить это работать. Большое спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо!, очень полезно.
Этот комментарий был сведен к минимуму модератором на сайте
Это сработало и как... Большое спасибо. Только одно дополнение: на шаге 3 мне нужно было нажать «Шаг в», а затем для выбора папки работала только клавиша F5.
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо за этот полезный код. возможно ли сохранить результат в той же книге, а не в новую?
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, это именно то, что нам было нужно для записи папок для наших клиентов.
Этот комментарий был сведен к минимуму модератором на сайте
Отличная работа... Это очень помогло мне, большое спасибо
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL