Перейти к содержимому

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

Author: Xiaoyang Last Modified: 2025-08-07

При работе с задачами управления директориями или файлами вам может понадобиться быстро получить полный список всех папок и подпапок внутри определенной директории и просмотреть эту информацию непосредственно в Excel. К сожалению, Excel не предоставляет встроенной функции или простого мастера для автоматического получения всех названий папок или подпапок из указанного пути к папке. В этой статье представлен код VBA, который позволяет вывести список всех папок и подпапок из любой выбранной директории прямо на ваш рабочий лист. Это минимизирует риск человеческой ошибки и устранит монотонную работу, помогая вам быстро отслеживать и управлять организацией данных.

Использование кода VBA для вывода списка всех папок и подпапок


Использование кода VBA для вывода списка всех папок и подпапок

Если вы хотите извлечь и отобразить все названия папок и подпапок из указанной директории в Excel, использование VBA (Visual Basic for Applications) является эффективным решением. Этот подход обеспечивает гибкость и контроль, позволяя вам не только получать названия папок, но и дополнительную информацию, такую как пути к папкам, даты создания и последние даты изменения. Этот метод особенно подходит для пользователей, которые комфортно работают с функциями разработчика в Excel, и тех, кто имеет дело с динамическими или часто меняющимися файловыми системами.

1. Нажмите ALT + F11, чтобы открыть редактор "Microsoft Visual Basic for Applications". Этот инструмент позволяет добавлять и редактировать макросы в вашей книге.

2. В редакторе VBA нажмите Вставка > Модуль. Это создаст новое окно модуля. Скопируйте и вставьте следующий код в модуль:

Код VBA: Вывести список всех папок и подпапок

Sub FolderNames()
'Updateby Extendoffice
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 или кнопку Выполнить в редакторе VBA для запуска макроса. Появится диалоговое окно Выбор папки, предлагающее выбрать целевую директорию, которую вы хотите сканировать на наличие папок и подпапок.

vba code to select folder name

4. Выберите нужную директорию и нажмите OK. Макрос обработает директорию и создаст новую книгу, содержащую список всех папок и подпапок вместе с их полными путями, родительскими директориями, названиями, датами создания и последними датами изменения, как показано ниже:

all folder names are listed in Excel

Некоторые практические советы и примечания по использованию этого кода:

  • Если структура вашей директории очень большая, макрос может занять некоторое время для обработки всех папок. Пожалуйста, будьте терпеливы во время выполнения и избегайте прерывания процесса.
  • Для работы метода VBA требуется, чтобы ваши настройки макросов были включены; в противном случае код не будет выполняться правильно. Если вы столкнетесь с предупреждениями безопасности, проверьте настройки Центра доверия в параметрах Excel.
  • Если вы случайно выбрали неправильную папку, просто повторно запустите макрос и выберите правильную директорию.
  • Этот подход выводит только информацию о папках и подпапках; если вам нужно также вывести файлы, обратитесь к связанной статье ниже для получения дополнительных опций.
  • Если несколько пользователей используют одну книгу, напомните им, что макросы должны быть включены на их компьютерах для использования этой динамической функции вывода.
  • Если созданная книга пустая или неполная, убедитесь, что выбранная директория не пуста и что у вас есть соответствующие права на чтение. Для особенно глубоких или сложных деревьев папок проверьте лимиты ресурсов вашей системы и, при необходимости, рассмотрите возможность обработки партиями или поддиректориями.

Это решение VBA является гибким, не требует дополнительных надстроек или внешнего программного обеспечения и автоматически создает выходную книгу для вашего удобства. Однако оно лучше всего подходит для пользователей, знакомых с базовыми операциями макросов, и может потребовать дополнительной доработки для конкретных настроек.


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

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

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–15 наборов инструментов: 12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...)   |   50+ типов диаграмм (Диаграмма Ганта, ...)   |   40+ практических формул (Расчет возраста на основе даты рождения, ...)   |   19 инструментов вставки (Вставить QR-код, Вставить изображение из пути, ...)   |  12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...)   |  7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...)   |   ... и многое другое
Используйте Kutools на вашем предпочитаемом языке – поддерживаются английский, испанский, немецкий, французский, китайский и более40 других языков!

Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени.  Щелкните здесь, чтобы получить наиболее нужную вам функцию...


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!