Sapendo come estrarre i file di Excel da più cartelle utilizzando Visual Basic, Applications Edition (VBA ), è possibile risparmiare tempo quando hai bisogno di cercare il computer per i file di Excel per memorizzarli in una cartella. VBA può essere utilizzato in applicazioni di Microsoft Office come Excel per automatizzare le attività di routine , come la ricerca di file in cartelle . Il modo migliore per la ricerca di file in più cartelle è quello di utilizzare la programmazione ricorsiva . Programmazione ricorsiva è usata quando si ha bisogno di una funzione di chiamare se stesso dall'interno della funzione . Cose che ti serviranno
Microsoft Office
Mostra più istruzioni
1
lancio di Microsoft Office Excel , fare clic su " Developer ", e fare clic su " Visual Basic " per avviare l' Editor VB . Fai clic sul menu "Inserisci" e fare clic su "Modulo" per inserire un nuovo modulo di codice
2
Digitare quanto segue per creare una nuova sotto- procedura : .
Dim colFiles As New Collection
3
Copia e incolla il seguente per creare le variabili :
Dim extractPath As String
Dim fileName As String Dim
Ruolo As Integer
4
Definire il percorso in cui si desidera copiare i file di Excel trovati :
extractPath = " C : \\ Temp \\ "
5 < p > Aggiungere il seguente codice per chiamare la funzione che trova i file di Excel per l'estrazione :
colFiles RecursiveDir , "F : \\ moreExcelFiles \\ ", " . * xlsx ", True
6 < p > Aggiungere il seguente codice per copiare i file trovati per il percorso definito nel Punto 3 :
Dim vFile As Variant
Ogni vFile in colFiles
Ruolo
InStrRev = ( vFile , " \\ " , , vbTextCompare ) per
nomefile = Right ( vFile , Len ( vFile ) - Ruolo ) per
FileCopy vFile , extractPath & fileName
Successivo vFile < br >
End Sub
7
definire la funzione " RecursiveDir " per cercare le cartelle e sotto- cartelle per i file di Excel :
Public Function RecursiveDir ( colFiles Come Collection , _ < br
strFolder > String, _
strFileSpec As String , _
bIncludeSubfolders As Boolean ) per
Dim strTemp As String Dim
colFolders Come nuova Collezione
Dim vFolderName As Variant
strFolder = TrailingSlash ( strFolder ) per
strTemp = Dir ( strFolder & strFileSpec ) per
Do While strTemp < > ; vbNullString
colFiles.Add strFolder & strTemp
strTemp = Dir
loop
bIncludeSubfolders Poi
strTemp = Dir ( strFolder , vbDirectory ) per
Do While strTemp < > vbNullString
( strTemp < > " . ") e ( strTemp < > ".." ) Poi
( GetAttr ( strFolder & strTemp ) e vbDirectory ) < > 0 Then
colFolders.Add strTemp
End If End If
< p > strTemp = Dir
loop
Ogni vFolderName In colFolders
Chiama RecursiveDir ( colFiles , strFolder & vFolderName , strFileSpec , True)
Successivo vFolderName
End If End Function
8
Creare la seguente funzione per aggiungere o rimuovere il "\\" dai percorsi delle cartelle :
pubblico TrailingSlash funzione ( strFolder As String ) As String
If Len ( strFolder ) > 0 Then
Destra ( strFolder , 1 ) = " \\ " Allora
TrailingSlash = strFolder
Else
TrailingSlash = strFolder & " \\ "
End If
End If End Function
< br > 9
Fare clic all'interno del sub- procedimento " extractExcelFiles " e fare clic su "F5" per eseguire il programma .