In questo articolo, creeremo una macro per elencare tutti i file all'interno della cartella.
Durante l'esecuzione della macro, il nome del file e il percorso del file verranno visualizzati a partire dalla cella A17.
Spiegazione logica
In questo articolo abbiamo creato due macro, "subfolder_files" e "getting_filelist_in_folder".
La macro "subfolder_files" prende il percorso della cartella e il valore booleano come input e restituisce il nome del file all'interno della cartella.
"getting_filelist_in_folder" viene utilizzato per chiamare la macro "subfolder_files". Fornisce il valore del percorso della cartella alla macro, con il valore booleano impostato su 'true'. Inoltre, quando sono richiesti i nomi dei file all'interno delle sottocartelle, assegniamo il valore booleano 'true'.
Spiegazione del codice
folder_path = Sheet1.TextBox1.Value
Il codice sopra viene utilizzato per estrarre il valore della stringa dalla casella di testo.
Chiama subfolder_files(folder_path, True)
Il codice sopra viene utilizzato per chiamare la macro "subfolder_files". Assegna il percorso della cartella e imposta la proprietà "include_subfolder" su true.
Imposta fso = CreateObject ("scripting.filesystemobject")
Il codice sopra viene utilizzato per creare l'oggetto del file system.
Imposta sottocartella1 = fso.getfolder(percorso_cartella)
Il codice sopra viene utilizzato per creare l'oggetto della cartella definita.
Per ogni cartella1 Nella sottocartella1.sottocartelle
Chiama subfolder_files(folder1, True)
Prossimo
Il codice sopra viene utilizzato per esaminare tutte le sottocartelle, all'interno della cartella principale.
Dir(percorso1 & "*.xlsx")
Il codice sopra viene utilizzato per ottenere il nome del file excel.
Mentre il nome del file ""
conteggio1 = conteggio1 + 1
ReDim Conserva filearray(1 Per contare1)
filearray(count1) = nomefile
nome file = Dir()
Wend
Il codice sopra viene utilizzato per creare un array, che consiste in tutti i nomi di file presenti all'interno della cartella.
Per i = 1 a UBound(filearray)
Cells(lastrow, 1).Value = folderpath1 & filearray(i)
ultima riga = ultima riga + 1
Prossimo
Il codice sopra viene utilizzato per assegnare il nome del file all'interno dell'array alla cartella di lavoro.
Si prega di seguire sotto per il codice
Option Explicit Sub subfolder_files(folderpath1 As Variant, Optional include_subfolder As Boolean) 'Verifica se includere o meno la sottocartella If include_subfolder Then 'Dichiara variabili Dim filename, filearray() As String Dim lastrow, count1, i As Integer 'Verifica se il percorso della cartella contiene barra rovesciata come ultimo carattere If Right(percorsocartella1, 1) "\" Then percorsocartella1 = percorsocartella1 & "\" End If 'Ottenimento del nome del primo file nel percorso della cartella definito nomefile = Dir(percorso1 & "*.xlsx") ' Ottenere il numero di riga dell'ultima cella lastrow = ActiveCell.SpecialCells(xlCellTypeLastCell).Row + 1 count1 = 0 'Eseguire il ciclo di tutti i file nella cartella While nomefile "" count1 = count1 + 1 ReDim Preserve filearray(1 Per contare1) filearray( count1) = nome file nome file = Dir() Wend On Error GoTo last 'Aggiunta nome file alla cartella di lavoro For i = 1 To UBound(filearray) Cells(lastrow, 1).Value = folderpath1 & filearray(i) lastrow = lastrow + 1 Successivo End If last: End Sub Sub getting_filelist_in_folder () 'Dichiarazione delle variabili Dim folder_path As String Dim fso As Object, folder1, subfolder1 As Object 'Ottenimento del percorso della cartella folder_path = Sheet1.TextBox1.Value 'Verifica se il percorso della cartella contiene una barra rovesciata come ultimo carattere If Right(folder_path, 1) " \" Then percorso_cartella = percorso_cartella & "\" End If 'Richiamo della macro subfolder_files Chiama subfolder_files(percorso_cartella, True) 'Creazione dell'oggetto dell'oggetto File system Set fso = CreateObject("scripting.filesystemobject") Set subfolder1 = fso.getfolder(percorso_cartella) 'Esegui il ciclo attraverso ogni sottocartella Per ogni cartella1 In subfolder1.subfolders Chiama subfolder_files(folder1, True) Next End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook. Inoltre, puoi seguirci su Twitter e Facebook.
Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica