Come estrarre file di Excel Da più cartelle con VBA

November 29

Come estrarre file di Excel Da più cartelle con VBA


Sapendo come estrarre i file di Excel da più cartelle utilizzando Visual Basic, Applications Edition (VBA) consente di risparmiare tempo quando è necessario 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 cercare i file in più cartelle è quello di utilizzare la programmazione ricorsiva. programmazione ricorsiva è usata quando si ha bisogno di una funzione di chiamarsi all'interno della funzione.

istruzione

1 Avviare Microsoft Office Excel, cliccare su "Sviluppatore", e cliccare su "Visual Basic" per avviare l'editor di VB. Fare clic sul menu "Inserisci" e fare clic su "Modulo" per inserire un nuovo modulo di codice.

2 Digitare la seguente per creare una nuova sotto-procedura:

colFiles Dim As New Collection

3 Copia e incolla il seguente per creare le variabili:

Dim extractPath As String

Dim nome del file come stringa

pos fioco come Integer

4 Definire il percorso in cui si desidera copiare i file di Excel trovati:

extractPath = "C:\Temp\"

5 Aggiungere il seguente codice per chiamare la funzione che troveranno i file di Excel per l'estrazione:

RecursiveDir colFiles, "F:\moreExcelFiles\", "*.xlsx", True

6 Aggiungere il seguente codice per copiare i file trovati nel percorso definito nel passaggio 3:

Dim vFile As Variant

Per ogni vFile In colFiles

pos = InStrRev (vFile, "\",, vbTextCompare)

filename = Destra (vFile, Len (vFile) - pos)

FileCopy vFile, extractPath & fileName

Successivo vFile

End sub

7 Definire la funzione "RecursiveDir" per cercare le cartelle e sotto-cartelle per i file di Excel:

RecursiveDir Funzione pubblica (colFiles la raccolta, _

strFolder As String, _

strFileSpec As String, _

bIncludeSubfolders As booleano)

Dim strTemp As String

colFolders Dim As New Collection

Dim vFolderName As Variant

strCartella = TrailingSlash (strCartella)

strTemp = Dir(strFolder & strFileSpec)

Do While strTemp & lt;> vbNullString

colFiles.Add strCartella & strTemp

strTemp = Dir

Ciclo continuo

Se bIncludeSubfolders Poi

strTemp = Dir (strCartella, vbDirectory)

Do While strTemp & lt;> vbNullString

Se (strTemp & lt;> ".") E (strTemp & lt;> "..") Poi

Se (GetAttr (strCartella & strTemp) E vbDirectory) & lt;> 0 Then

colFolders.Add strTemp

Finisci se

Finisci se

strTemp = Dir

Ciclo continuo

Per ogni vFolderName In colFolders

Chiamare RecursiveDir (colFiles, strCartella & vFolderName, strFileSpec, True)

Successivo vFolderName

Finisci se

End Function

8 Creare la seguente funzione per aggiungere o rimuovere la "\" dai percorsi delle cartelle:

Pubblico TrailingSlash Function (strCartella As String) As String

If Len(strFolder) > 0 Then

Se a destra (strCartella, 1) = "\" Poi

TrailingSlash = strCartella

Altro

TrailingSlash = strCartella & "\"

Finisci se

Finisci se

End Function

9 Fare clic all'interno della "extractExcelFiles" sub-procedimento e fare clic su "F5" per eseguire il programma.