November 29
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.
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.