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

¿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

Pestaña de Office Habilite la edición y navegación con pestañas en Office y haga su trabajo mucho más fácil
Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%
  • Reutiliza cualquier cosa: Agregue las fórmulas, gráficos y cualquier otra cosa más utilizados o complejos a sus favoritos y reutilícelos rápidamente en el futuro.
  • Más de 20 funciones de texto: Extraer número de la cadena de texto; Extraer o eliminar parte de los textos; Convierta números y monedas a palabras en inglés.
  • Combinar herramientas: Varios libros de trabajo y hojas en uno; Fusionar varias celdas / filas / columnas sin perder datos; Fusionar filas duplicadas y suma.
  • Herramientas divididas: Divida los datos en varias hojas según el valor; Un libro de trabajo para varios archivos Excel, PDF o CSV; Una columna a varias columnas.
  • Pegar saltando Filas ocultas / filtradas; Cuenta y suma por color de fondo; Envíe correos electrónicos personalizados a varios destinatarios de forma masiva.
  • Súper filtro: Cree esquemas de filtros avanzados y aplíquelos a cualquier hoja; Ordenar por semana, día, frecuencia y más; Filtrar por negrita, fórmulas, comentario ...
  • Más de 300 potentes funciones; Funciona con Office 2007-2021 y 365; Admite todos los idiomas; Fácil implementación en su empresa u organización.

flecha azul burbuja derecha 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:

doc-list-carpeta-nombres-1

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:

doc-list-carpeta-nombres-1


Artículo relacionado:

¿Cómo enumerar archivos en un directorio a una hoja de trabajo en Excel?


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

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!
officetab parte inferior
Comentarios (18)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
Muchas gracias. Estaba usando cmd prompt para tener un txt con mis carpetas y luego copiarlo en Excel, pero ahora me facilitas las cosas :)
Este comentario fue minimizado por el moderador en el sitio
¿Qué pasa si necesito crear el enlace también para la carpeta? ¿Qué debo modificar en la codificación y no podemos crear el botón y vincular la misma codificación a él, por lo que será útil para los usuarios que no saben cómo ejecutar macros?
Este comentario fue minimizado por el moderador en el sitio
Hice exactamente lo que me pides. Coloqué el logotipo de mi empresa en la hoja de trabajo, luego hice clic derecho sobre él y asigné una macro (que es el código anterior). También puede insertar instrucciones de uso para el usuario.
Este comentario fue minimizado por el moderador en el sitio
Este código realmente salvó el día. Gracias por compartirlo.
Este comentario fue minimizado por el moderador en el sitio
Hola, acabo de seguir tus instrucciones, pero recibo errores cuando presiono F5 para ejecutar. El siguiente error resalta "Dim xWs As Worksheet". ¿Hay un código actualizado que pueda usar? Error de compilación: tipo definido por el usuario no definido
Este comentario fue minimizado por el moderador en el sitio
[quote]Hola, acabo de seguir tus instrucciones, pero recibo errores cuando presiono F5 para ejecutar. El siguiente error resalta "Dim xWs As Worksheet". ¿Hay un código actualizado que pueda usar? Error de compilación: tipo definido por el usuario no definidopor maria[/quote] ¿Está utilizando el complemento Kutools o el editor MS Excel VBA? Como no estoy usando el complemento, no puedo duplicar su error. El uso de MS VBA Editor funciona sin ningún error.
Este comentario fue minimizado por el moderador en el sitio
Cuando ejecuto este código, funciona, pero solo muestra la primera carpeta dentro de la carpeta que elijo. Por ejemplo, cuando ejecuto el código, elijo "C:\Users\Johnson\Music" (Nota: tengo 70 carpetas dentro de mi carpeta de música). Cuando el código se ejecuta, solo muestra la primera carpeta y luego enumera todas las carpetas dentro de ella. carpeta. Me gustaría que enumerara todas las carpetas dentro de la carpeta Música.
Este comentario fue minimizado por el moderador en el sitio
Estoy con los demás, funciona hasta cierto punto.

Para mí, ese punto es que crea el nuevo s/s, detalla la carpeta que he mostrado (en las celdas A1), la barra resaltada en amarillo en la fila 2 con los encabezados seguidos de nada más.

La carpeta que estoy viendo está vacía excepto por las subcarpetas (es decir, no existen archivos de datos) y las subcarpetas no aparecen en absoluto.

¿Alguien puede ayudarme a enumerar las subcarpetas y sus archivos?
Este comentario fue minimizado por el moderador en el sitio
Lo modifiqué para agregar tamaño:



Nombres de subcarpetas()
'Actualiza 20141027
Application.ScreenUpdating = False
Atenuar xPath como cadena
Dim xWs como hoja de trabajo
Dim fso como objeto, j como largo, carpeta1 como objeto
Con Application.FileDialog (msoFileDialogFolderPicker)
.Title = "Elegir la carpeta"
.Espectáculo
End With
On Error Resume Next
xPath = Aplicación.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Aplicación.Libros.Agregar
Establecer xWs = Application.ActiveSheet
xWs.Cells(1, 1).Valor = xPath
xWs.Cells(2, 1).Resize(1, 6).Valor = Array("Ruta", "Dir", "Nombre", "Fecha de creación", "Fecha de la última modificación","Tamaño")
Establecer fso = CreateObject ("Scripting.FileSystemObject")
Establecer carpeta1 = fso.getFolder(xPath)
getSubFolder carpeta1
xWs.Cells(2, 1).Resize(1, 6).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 6).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Atenuar subcarpeta como objeto
Dim subfld como objeto
Dim xRow tan largo
Para cada subcarpeta en prntfld.SubFolders
FilaX = Rango("A1").End(xlDown).Fila + 1
Cells(xRow, 1).Resize(1, 6).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder. FechaÚltimaModificación, Subcarpeta.Tamaño)
Subcarpeta siguiente
Para cada subfld en prntfld.SubFolders
getSubFolder subcampo
Siguiente subcampo
End Sub
Este comentario fue minimizado por el moderador en el sitio
Cuando incluye la función SubFolder.Size, la secuencia de comandos ya no enumera todas las subcarpetas, solo el primer nivel.
¿Cómo puedo incluir el tamaño y obtener una lista de todas las subcarpetas?
Este comentario fue minimizado por el moderador en el sitio
Hola. ¿Pueden ayudarme con un código que estoy luchando por encontrar?

A continuación se detallan los requisitos para el código.



1. El VBA debe pasar por todas las carpetas y subcarpetas
y comprobar todos y cada uno de los tipos de archivo. El usuario solo debe dar la ruta para
la carpeta superior. Luego, el código debe verificar todas las carpetas y subcarpetas.
dentro de la carpeta superior.



2. Después de verificar los archivos, el código debe comprimir todos los archivos
a los que no se ha accedido durante más de 3 meses. El período de acceso es
algo que debería poder cambiar en el futuro si es necesario. Debería
permítanme cambiarlo a 1 mes o 5 meses si es necesario.



3. Después de comprimir los archivos, el código debe eliminar el
archivos originales que fueron comprimidos.



4. El archivo comprimido debe guardarse en la misma ruta que el
archivo original.
Este comentario fue minimizado por el moderador en el sitio
¡Gran herramienta! Después de una larga investigación encontré este juguete preciso :)
Este comentario fue minimizado por el moderador en el sitio
Justo lo que necesitaba, e instrucciones perfectamente claras sobre cómo hacerlo funcionar. Muchas gracias
Este comentario fue minimizado por el moderador en el sitio
¡Muchas gracias!, muy útil.
Este comentario fue minimizado por el moderador en el sitio
Esto funcionó y cómo... Muchas gracias. Solo una adición: en el Paso 3, tuve que hacer clic en Paso a paso y luego solo funcionó la tecla F5 para elegir la carpeta.
Este comentario fue minimizado por el moderador en el sitio
Muchas gracias por este útil código. ¿Es posible guardar el resultado en el mismo libro de trabajo y no en uno nuevo?
Este comentario fue minimizado por el moderador en el sitio
Gracias, esto es exactamente lo que necesitábamos para grabar las carpetas para nuestros clientes.
Este comentario fue minimizado por el moderador en el sitio
Gran trabajo... Es muy útil para mí, muchas gracias
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL