Wissen, wie man Excel-Dateien aus mehreren Ordnern mit Visual Basic für Applikationen ( VBA) können Sie Zeit sparen , wenn Sie Ihren Computer für Excel-Dateien suchen, um sie in einem Ordner speichern müssen extrahieren. VBA kann in Microsoft Office-Anwendungen wie Excel , Routineaufgaben wie die Suche nach Dateien in Ordnern automatisieren verwendet werden. Der beste Weg, um Dateien in verschiedenen Ordnern zu suchen , ist die Verwendung rekursive Programmierung. Rekursive Programmierung verwendet wird , wenn Sie eine Funktion, um sich innerhalb der Funktion aufrufen müssen . Things You
Microsoft Office
brauchen anzeigen Weitere Anweisungen
1
Starten Sie Microsoft Office Excel , klicken Sie auf " Entwickler ", und klicken Sie auf " Visual Basic ", um den VB Editor starten . Klicken Sie auf das Menü "Einfügen" und klicken Sie auf "Module" , um einen neuen Code-Modul einfügen
2
Geben Sie den folgenden , um eine neue Sub- Prozedur zu erstellen : .
Dim colFiles Wie New Collection
3
Kopieren Sie den folgenden Ihre Variablen zu erstellen :
Dim extractPath As String
Dim Dateiname As String Dim
pos As Integer
4
Definieren Sie den Pfad , wo Sie wollen , um die Excel-Dateien gefunden kopieren :
extractPath = "C: \\ Temp \\ "
5
Fügen Sie den folgenden Code, um die Funktion, die die Excel-Dateien für die Extraktion finden anrufen:
RecursiveDir colFiles , "F: \\ moreExcelFiles \\ ", " . * xlsx ", True
6 < p> Fügen Sie den folgenden Code, um die gefundenen Dateien auf den Pfad in Schritt 3 definierten kopieren :
Dim vFile As Variant
For Each vFile in colFiles
pos = InStrRev ( vFile , "\\" , vbTextCompare )
filename = Right ( vFile , Len ( vFile ) - pos)
FileCopy vFile , extractPath & fileName
Weiter vFile
End sub
7
Definieren Sie den " RecursiveDir "-Funktion , um die Ordner und Unterordner für Excel -Dateien zu suchen :
Public Function RecursiveDir ( colFiles Wie Collection, _
strFolder As String , _
strFileSpec As String , _
bIncludeSubfolders As Boolean ) Dim
strTemp As String Dim
colFolders Wie Neue Kollektion
Dim vFolderName As Variant
strFolder = TrailingSlash ( strFolder )
strTemp = Dir ( strFolder & strFileSpec )
Do While strTemp <> ; vbNullString
colFiles.Add strFolder & strTemp
strTemp = Dir
Schleife
Wenn bIncludeSubfolders Dann
strTemp = Dir ( strFolder , vbDirectory )
Do While strTemp <> vbNullString
( strTemp <> " . ") und ( strTemp <> " .. ") Then
( GetAttr ( strFolder & strTemp ) und vbDirectory ) < > 0 Then
colFolders.Add strTemp
End If End If
< p> strTemp = Dir
Schleife
For Each vFolderName In colFolders
Anruf RecursiveDir ( colFiles , strFolder & vFolderName , strFileSpec , True)
Weiter vFolderName
End If End Function
8
erstellen Sie die folgende Funktion hinzufügen oder entfernen Sie den "\\" aus dem Ordner Pfade :
öffentlichen Funktion TrailingSlash ( strFolder As String ) As String
Wenn Len ( strFolder ) > 0 Then
Wenn Right ( strFolder , 1) = "\\" Dann
TrailingSlash = strFolder
Else
TrailingSlash = strFolder & "\\"
End If End If
End Function
< br > 9
klicken Sie in die " extractExcelFiles " sub- Verfahren und klicken Sie auf " F5 ", um das Programm auszuführen.