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

Cum se listează toate folderele și subfolderele din Excel?

Ați suferit vreodată cu această problemă care listează toate folderele și subfolderele dintr-un director specificat într-o foaie de lucru? În Excel, nu există o modalitate rapidă și utilă de a obține simultan numele tuturor folderelor dintr-un anumit director. Pentru a face față sarcinii, acest articol vă poate ajuta.

Listează toate folderele și subfolderele cu cod VBA

Fila Office Activați editarea și navigarea cu file în Office și faceți munca mult mai ușoară ...
Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%
  • Reutilizați orice: Adăugați cele mai utilizate sau complexe formule, diagrame și orice altceva la preferatele dvs. și reutilizați-le rapid în viitor.
  • Peste 20 de caracteristici text: Extrageți numărul din șirul de text; Extrageți sau eliminați o parte din texte; Conversia numerelor și valutelor în cuvinte în limba engleză.
  • Instrumente de îmbinare: Mai multe cărți de lucru și foi într-unul; Combinați mai multe celule / rânduri / coloane fără a pierde date; Combinați rândurile duplicate și suma.
  • Instrumente divizate: Împărțiți datele în mai multe foi bazate pe valoare; Un registru de lucru pentru mai multe fișiere Excel, PDF sau CSV; O coloană la mai multe coloane.
  • Lipiți săriți Rânduri ascunse / filtrate; Număr și sumă de Culoarea fundalului; Trimiteți e-mailuri personalizate către mai mulți destinatari în bloc.
  • Super Filtru: Creați scheme avansate de filtrare și aplicați oricăror foi; Sortează pe săptămână, zi, frecvență și multe altele; Filtru prin îndrăznețe, formule, comentarii ...
  • Peste 300 de caracteristici puternice; Funcționează cu Office 2007-2021 și 365; Suporta toate limbile; Implementare ușoară în întreprinderea sau organizația dvs.

săgeată albastru dreapta balon Listează toate folderele și subfolderele cu cod VBA

Dacă doriți să obțineți toate numele folderelor dintr-un director specificat, următorul cod VBA vă poate ajuta, vă rugăm să faceți acest lucru:

1. Țineți apăsat butonul ALT + F11 tastele și deschide fișierul Fereastra Microsoft Visual Basic pentru aplicații.

2. Clic Insera > Moduleși lipiți următorul cod în Fereastra modulului.

Cod VBA: enumeră toate folderele și numele subdosarelor

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. Apoi apăsați F5 tasta pentru a rula acest cod și a Alegeți folderul fereastra va apărea, apoi trebuie să selectați directorul în care doriți să enumerați numele folderelor și subdosarelor, consultați captura de ecran:

doc-list-folder-names-1

4. Clic OK, și veți obține calea folderului și a subdirectoarelor, directorul, numele, data creată și data ultimei modificări într-un nou registru de lucru, consultați captura de ecran:

doc-list-folder-names-1


Articol asociat:

Cum se listează fișierele dintr-un director în foaia de lucru în Excel?


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (18)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc mult. Folosisem promptul cmd pentru a avea un txt cu folderele mele, apoi îl copiam pe excel, dar acum îmi faci lucrurile mai ușoare :)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ce se întâmplă dacă trebuie să creez linkul și pentru folder, ce ar trebui să modific în codificare și nu putem crea un buton și conectați aceeași codare la acesta, așa că va fi util pentru utilizatorii care nu știu cum să ruleze macrocomenzi
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am făcut exact ce ai cerut. Am plasat logo-ul companiei mele pe foaia, apoi am făcut clic dreapta pe ea și am atribuit o macrocomandă (care este codul de mai sus.) De asemenea, puteți introduce instrucțiuni de utilizare pentru utilizare.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest cod a salvat cu adevărat ziua. Vă mulțumim că l-ați împărtășit.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, tocmai ți-am urmat instrucțiunile, dar primesc erori când apăs pe F5 pentru a rula. Eroarea de mai jos evidențiază „Dim xWs As Worksheet”. Există un cod actualizat pe care să-l pot folosi? Eroare de compilare: tipul definit de utilizator nu este definit
Acest comentariu a fost redus la minimum de moderatorul de pe site
[quote]Bună ziua, tocmai ți-am urmat instrucțiunile, dar primesc erori când apăs pe F5 pentru a rula. Eroarea de mai jos evidențiază „Dim xWs As Worksheet”. Există un cod actualizat pe care să-l pot folosi? Eroare de compilare: tipul definit de utilizator nu este definitDe Caralyn[/quote] Folosiți suplimentul Kutools sau editorul MS Excel VBA? Deoarece nu folosesc suplimentul, nu pot duplica eroarea dvs. Utilizarea MS VBA Editor funcționează fără erori.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Când rulez acest cod, funcționează, dar arată doar primul folder din partea directorului pe care l-am ales. De exemplu, când rulez codul, aleg „C:\Users\Johnson\Music” (Notă: am 70 de foldere în dosarul meu de muzică) Când rulează codul, afișează doar primul folder și apoi listează toate folderele din acel pliant. Aș dori să listeze toate folderele din dosarul Muzică.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Sunt cu ceilalți - funcționează până la un punct.

Pentru mine, acel punct este că creează noul s/s, detaliază folderul pe care l-am arătat (în celulele A1), o bară evidențiată galbenă în rândul 2 cu titlurile urmate de nimic altceva!

Dosarul la care mă uit este gol, cu excepția subdirectoarelor (adică nu există fișiere de date) și sub folderele nu apar deloc.

Poate cineva să mă ajute să enumerez subdirectoarele și fișierele lor?
Acest comentariu a fost redus la minimum de moderatorul de pe site
L-am modificat pentru a adăuga dimensiunea:



Sub FolderNames()
„Actualizare 20141027
Application.ScreenUpdating = Fals
Dim xPath ca șir
Dim xWs ca fișă de lucru
Dim fso ca obiect, j ca lung, folder1 ca obiect
Cu Application.FileDialog(msoFileDialogFolderPicker)
.Title = „Alegeți folderul”
.Spectacol
Se termina cu
La data de eroare CV următoare
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & „\”
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
xWs.Cells(1, 1).Valoare = xPath
xWs.Cells(2, 1).Resize(1, 6).Value = Array(„Cale”, „Dir”, „Nume”, „Data de creare”, „Data ultimei modificări”, „Dimensiune”)
Setați fso = CreateObject ("Scripting.FileSystemObject")
Set folder1 = fso.getFolder(xPath)
folderul getSubFolder1
xWs.Cells(2, 1).Resize(1, 6).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 6).EntireColumn.AutoFit
Application.ScreenUpdating = Adevărat
End Sub
Sub getSubFolder(ByRef prntfld ca obiect)
Dim Subfolder ca obiect
Dim subfld ca obiect
Dim xRow As Long
Pentru fiecare subdosar din prntfld.SubFolders
xRow = Range("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. DataLastModified, SubFolder.Size)
Următorul subdosar
Pentru fiecare subfld În prntfld.SubFolders
getSubFolder subfld
Următorul subfld
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
Când includeți funcția SubFolder.Size, scriptul nu mai listează toate subfolderele, ci doar primul nivel.
Cum pot include dimensiunea și cum pot lista toate subfolderele?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Buna ziua. Vă rog să mă ajutați cu un cod pe care mă străduiesc să-l găsesc.

Mai jos sunt cerințele pentru cod.



1. VBA ar trebui să treacă prin toate folderele și subdirectoarele
și verificați fiecare tip de fișier. Utilizatorul ar trebui să dea doar calea pentru
folderul de sus. Codul ar trebui apoi să verifice toate folderele și sub folderele
în folderul de sus.



2. După verificarea fișierelor, codul ar trebui să zipească toate fișierele
care nu au fost accesate de mai mult de 3 luni. Perioada accesată este
ceva pe care ar trebui să-l pot schimba în viitor, dacă este necesar. Ar trebui
permiteți-mi să-l schimb la 1 lună sau 5 luni dacă este necesar.



3. După arhivarea fișierelor, codul ar trebui să ștergă fișierul
fișierele originale care au fost arhivate.



4. Fișierul arhivat ar trebui să fie salvat în aceeași cale ca și fișierul
dosarul original.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Un instrument grozav! După lungi cercetări, am găsit această jucărie exactă :)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Exact ce aveam nevoie și instrucțiuni perfect clare despre cum să funcționeze. Mulțumesc mult
Acest comentariu a fost redus la minimum de moderatorul de pe site
Multumesc mult!, foarte util.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest lucru a funcționat și cum... Mulțumesc mult. Doar o adăugare - la Pasul 3, a trebuit să dau clic pe Step Into și apoi a funcționat doar tasta F5 pentru a alege folderul.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumesc foarte mult pentru acest cod util. este posibil ca rezultatul de salvare în același registru de lucru nu într-unul nou?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumim, este exact ceea ce aveam nevoie pentru a înregistra dosarele pentru clienții noștri.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Super lucru... Îmi este de mare ajutor, mulțumesc foarte mult
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL