En este artículo, crearemos una macro para enumerar todos los archivos dentro de la carpeta.
Al ejecutar la macro, el nombre del archivo junto con la ruta del archivo se mostrarán a partir de la celda A17.
Explicación lógica
En este artículo hemos creado dos macros, "subfolder_files" y "Getting_filelist_in_folder".
La macro "subfolder_files" toma la ruta de la carpeta y el valor booleano como entradas y devuelve el nombre del archivo dentro de la carpeta.
"Getting_filelist_in_folder" se utiliza para llamar a la macro "subfolder_files". Proporciona el valor de la ruta de la carpeta a la macro, con el valor booleano establecido en 'verdadero'. Además, cuando se requieren nombres de archivo dentro de las subcarpetas, asignamos el valor booleano 'verdadero'.
Explicación del código
folder_path = Sheet1.TextBox1.Value
El código anterior se utiliza para extraer el valor de la cadena del cuadro de texto.
Llamar a subfolder_files (folder_path, True)
El código anterior se utiliza para llamar a la macro "subfolder_files". Asigna la ruta de la carpeta y establece la propiedad "include_subfolder" como verdadera.
Establecer fso = CreateObject ("scripting.filesystemobject")
El código anterior se utiliza para crear un objeto del sistema de archivos.
Establecer subcarpeta1 = fso.getfolder (ruta_carpeta)
El código anterior se utiliza para crear el objeto de la carpeta definida.
Para cada carpeta1 en subcarpeta1.subcarpetas
Llamar subfolder_files (folder1, True)
próximo
El código anterior se usa para buscar en todas las subcarpetas, dentro de la carpeta principal.
Dir (ruta de carpeta1 y "* .xlsx")
El código anterior se usa para obtener el nombre del archivo de Excel.
Mientras que el nombre de archivo ""
count1 = count1 + 1
ReDim Preserve filearray (1 para contar1)
filearray (count1) = nombre de archivo
nombre de archivo = Dir ()
Encaminarse a
El código anterior se utiliza para crear una matriz, que consta de todos los nombres de archivo presentes dentro de la carpeta.
Para i = 1 a UBound (matriz de archivos)
Celdas (lastrow, 1) .Value = folderpath1 & filearray (i)
lastrow = lastrow + 1
próximo
El código anterior se usa para asignar un nombre de archivo dentro de la matriz al libro de trabajo.
Siga a continuación para obtener el código
Option Subfolder_files explícitos (folderpath1 como variante, opcional include_subfolder como booleano) 'Verificando si incluir subcarpeta o no If include_subfolder Then' Declarando variables Dim filename, filearray () As String Dim lastrow, count1, i As Integer 'Verificando si la ruta de la carpeta contiene barra invertida como último carácter Si es Derecha (ruta de carpeta1, 1) "\" Entonces ruta de carpeta1 = ruta de carpeta1 & "\" End If 'Obteniendo el nombre de archivo del primer archivo en la ruta de carpeta definida nombre de archivo = Dir (ruta de carpeta1 & "* .xlsx")' Obteniendo el número de fila de la última celda lastrow = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row + 1 count1 = 0 'Recorriendo todos los archivos en la carpeta While filename "" count1 = count1 + 1 ReDim Preserve filearray (1 To count1) filearray ( count1) = filename filename = Dir () Wend On Error GoTo last 'Agregar nombre de archivo al libro de trabajo Para i = 1 To UBound (filearray) Cells (lastrow, 1) .Value = folderpath1 & filearray (i) lastrow = lastrow + 1 Siguiente End If last: End Sub Sub Getting_filelist_in_folder () 'Declarando variables Dim folder_path As String Dim fso As Object, folder1, subfolder1 As Object' Obteniendo la ruta de la carpeta folder_path = Sheet1.TextBox1.Value 'Verificando si la ruta de la carpeta contiene una barra invertida como último carácter If Right (folder_path, 1) " \ "Then folder_path = folder_path &" \ "End If 'Llamando subfolder_files macro Call subfolder_files (folder_path, True)' Creando objeto del objeto del sistema de archivos Establecer fso = CreateObject (" scripting.filesystemobject ") Establecer subcarpeta1 = fso.getfolder (folder_path) 'Recorriendo cada subcarpeta Para cada carpeta1 En subcarpeta1.subcarpetas Llamar subcarpeta_archivos (carpeta1, Verdadero) Siguiente Fin Sub
Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico