¿Cómo listar todas las carpetas y subcarpetas en Excel?
¿Alguna vez has tenido problemas para listar todas las carpetas y subcarpetas de un directorio específico en una hoja de cálculo? En Excel, no hay una manera rápida y sencilla de obtener el nombre de todas las carpetas en un directorio específico de una sola vez. Para manejar esta tarea, este artículo puede ayudarte.
Usar código VBA para listar todas las carpetas y subcarpetas
Usar código VBA para listar todas las carpetas y subcarpetas
Si deseas obtener todos los nombres de las carpetas desde un directorio especificado, el siguiente código VBA puede ayudarte, por favor sigue estos pasos:
1. Mantén presionadas las teclas "ALT + F11", y se abrirá la ventana "Microsoft Visual Basic for Applications".
2. Haz clic en "Insertar" > "Módulo", y pega el siguiente código en la "Ventana del Módulo".
Código VBA: Listar todas las carpetas y subcarpetas
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. Luego presiona la tecla "F5" para ejecutar este código, y aparecerá una ventana "Selecciona la carpeta", luego necesitarás seleccionar el directorio del que deseas listar las carpetas y subcarpetas, ver captura de pantalla:
4. Haz clic en "Aceptar", y obtendrás la ruta de las carpetas y subcarpetas, directorio, nombre, fecha de creación y última fecha de modificación en un nuevo libro de trabajo, ver captura de pantalla:
Artículo relacionado:
¿Cómo listar archivos en un directorio en una hoja de cálculo en Excel?
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!