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

Як перерахувати всі папки та підпапки в Excel?

Ви коли-небудь стикалися з цією проблемою, яка перераховує всі папки та підпапки із зазначеного каталогу на робочий аркуш? В Excel немає швидкого та зручного способу отримати назву всіх папок у певному каталозі одночасно. Щоб вирішити завдання, ця стаття може вам допомогти.

Перелічіть усі папки та підпапки з кодом VBA

Вкладка Office Увімкніть редагування та перегляд вкладок в Office та значно спростіть свою роботу ...
Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%
  • Повторне використання будь-чого: Додайте найбільш уживані або складні формули, діаграми та будь-що інше до вибраного та швидко використовуйте їх у майбутньому.
  • Більше 20 функцій тексту: Витяг номера з текстового рядка; Витяг або видалення частини текстів; Перетворення чисел і валют в англійські слова.
  • Злиття інструментів: Кілька робочих книжок та аркушів в одне ціле; Об’єднати кілька клітинок / рядків / стовпців без втрати даних; Об’єднати повторювані рядки та суму.
  • Розділити інструменти: Розділити дані на кілька аркушів на основі значення; Одна робоча книга до декількох файлів Excel, PDF або CSV; Один стовпець на кілька стовпців.
  • Пропустити вставку Приховані / відфільтровані рядки; Граф і сума за кольором тла; Надіслати персоналізовані електронні листи кільком одержувачам масово.
  • Суперфільтр: Створюйте розширені схеми фільтрів і застосовуйте їх до будь-яких аркушів; сортувати за тижнями, днями, періодичністю тощо; фільтр жирним шрифтом, формули, коментар ...
  • Понад 300 потужних функцій; Працює з Office 2007-2021 і 365; Підтримує всі мови; Легке розгортання на вашому підприємстві чи в організації.

стрілка синя права міхур Перелічіть усі папки та підпапки з кодом VBA

Якщо ви хочете отримати всі імена папок із зазначеного каталогу, вам може допомогти такий код VBA, зробіть так:

1. Утримуйте клавішу ALT + F11 і відкриває Вікно Microsoft Visual Basic для програм.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код 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 ключ для запуску цього коду, і a Виберіть папку вікно вискочить, тоді вам потрібно вибрати каталог, в якому ви хочете вказати імена папок та підпапок, див. знімок екрана:

doc-list-names-folder-1

4. Клацання OK, і ви отримаєте шлях до папки та підпапок, каталог, ім'я, дату створення та дату останньої зміни в новій книзі, див. знімок екрана:

doc-list-names-folder-1


Пов'язана стаття:

Як перерахувати файли в каталозі на аркуші в Excel?


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 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
Application.ScreenUpdating = Невірний
Dim xPath як рядок
Dim xWs як робочий аркуш
Dim fso як об'єкт, j As Long, folder1 як об'єкт
З Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Вибрати папку"
.Показати
Кінець з
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Додаток.Робочі зошити.Додати
Встановіть xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 6).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified","Size")
Встановити 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
Підпапка getSubFolder(ByRef prntfld як об'єкт)
Підпапка затемнення як об’єкт
Dim subfld як об'єкт
Dim xRow As Long
Для кожної підпапки в prntfld.SubFolders
xRow = Діапазон("A1").End(xlDown).Row + 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)
Наступна підпапка
Для кожного subfld In prntfld.SubFolders
getSubFolder subfld
Наступний subfld
End Sub
Цей коментар був мінімізований модератором на сайті
Коли ви включаєте функцію SubFolder.Size, сценарій більше не перераховує всі підпапки, а лише перший рівень.
Як я можу вказати розмір і отримати список усіх вкладених папок?
Цей коментар був мінімізований модератором на сайті
Привіт. Будь ласка, допоможіть мені з кодом, який мені важко знайти.

Нижче наведені вимоги до коду.



1. VBA має пройти через усі папки та підпапки
і перевірте кожен тип файлу. Користувач повинен вказати лише шлях для
верхня папка. Потім код повинен перевірити всі папки та підтеки
у верхній папці.



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



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



4. Заархівований файл слід зберегти за тим самим шляхом, що й файл
оригінальний файл.
Цей коментар був мінімізований модератором на сайті
Чудовий інструмент! Після довгих досліджень знайшли цю точну іграшку :)
Цей коментар був мінімізований модератором на сайті
Саме те, що мені потрібно, і чіткі інструкції, як це зробити. Дуже дякую
Цей коментар був мінімізований модератором на сайті
Дуже дякую!, дуже корисно.
Цей коментар був мінімізований модератором на сайті
Це спрацювало і як... Велике спасибі. Лише одне доповнення – на кроці 3 мені довелося натиснути кнопку Step Into, а потім лише клавіша F5 спрацювала для вибору папки.
Цей коментар був мінімізований модератором на сайті
Щиро дякую за цей корисний код. чи можливо зберегти результат у тій самій книзі, а не в новій?
Цей коментар був мінімізований модератором на сайті
Дякую, це саме те, що нам потрібно для запису папок для наших клієнтів.
Цей коментар був мінімізований модератором на сайті
Чудова робота... Це дуже корисно для мене, дуже дякую
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL