¿Cómo enumerar todas las carpetas y subcarpetas en Excel?
¿Alguna vez ha sufrido este problema que enumera todas las carpetas y subcarpetas de un directorio específico en una hoja de trabajo? En Excel, no existe una forma rápida y práctica de obtener el nombre de todas las carpetas en un directorio específico a la vez. Para hacer frente a la tarea, este artículo puede ayudarlo.
Enumere todas las carpetas y subcarpetas con código VBA
Enumere todas las carpetas y subcarpetas con código VBA
Si desea obtener todos los nombres de carpetas de un directorio específico, el siguiente código VBA puede ayudarlo, haga lo siguiente:
1. Mantenga pulsado el ALT + F11 llaves, y abre el Ventana de Microsoft Visual Basic para aplicaciones.
2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.
Código VBA: enumere todas las carpetas y nombres de subcarpetas
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. Entonces presione F5 clave para ejecutar este código, y una Elige la carpeta Aparecerá una ventana emergente, luego debe seleccionar el directorio en el que desea enumerar los nombres de la carpeta y subcarpeta, vea la captura de pantalla:
4. Hacer clic OK, y obtendrá la ruta de la carpeta y las subcarpetas, el directorio, el nombre, la fecha de creación y la última fecha de modificación en un nuevo libro de trabajo, vea la captura de pantalla:
Artículo relacionado:
¿Cómo enumerar archivos en un directorio a una hoja de trabajo en Excel?
Las mejores herramientas de productividad de oficina
Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haga clic aquí para obtener la función que más necesita...
Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
- ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!