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
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:
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:
Articol asociat:
Cum se listează fișierele dintr-un director în foaia de lucru în Excel?
Cele mai bune instrumente de productivitate de birou
Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp. Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...
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!