Savoir extraire des fichiers Excel à partir de plusieurs dossiers à l'aide de Visual Basic pour Applications (VBA ) peut vous faire gagner du temps lorsque vous avez besoin de rechercher sur votre ordinateur les fichiers Excel pour les stocker dans un dossier. VBA peut être utilisé dans des applications Microsoft Office tels que Excel pour automatiser les tâches de routine telles que la recherche de fichiers dans des dossiers. La meilleure façon de rechercher des fichiers dans plusieurs dossiers est d'utiliser la programmation récursive. Programmation récursive est utilisée lorsque vous avez besoin d'une fonction à appeler lui-même au sein de la fonction . Choses que vous devez
Microsoft Office
Voir Plus Instructions
1
lancement de Microsoft Office Excel , cliquez sur " Developer " et cliquez sur " Visual Basic " pour lancer l'éditeur VB . Cliquez sur le menu "Insertion " et cliquez sur "Module" pour insérer un nouveau module de code
2
Tapez la suivante pour créer un nouveau sous-procédure : .
ColFiles As New Collection
3
Copiez et collez la commande suivante pour créer vos variables :
extractPath Dim As String
fileName Dim As String Dim
pos As Integer
4
définir le chemin où vous voulez copier les fichiers Excel trouvés :
extractPath = "C: \\ Temp \\ "
5 < p > Ajoutez le code suivant pour appeler la fonction qui va trouver les fichiers Excel pour l'extraction : Photos
colFiles de RecursiveDir , " F: \\ moreExcelFiles \\", " *. xlsx ", True
6 < p> Ajoutez le code suivant pour copier les fichiers trouvés sur le chemin défini à l'étape 3: Photos
vFile As Variant
Chaque vFile en colFiles
pos
= InStrRev ( vFile , "\\" , vbTextCompare )
filename = Right ( vFile , Len ( vFile ) - pos)
FileCopy vFile , extractPath & fileName
Suivant vFile < br >
End Sub
7
définir la fonction " RecursiveDir " pour rechercher les dossiers et sous-dossiers pour les fichiers Excel :
RecursiveDir fonction publique ( colFiles que la collecte, _
strFolder As String , _
strFileSpec As String , _
bIncludeSubfolders As Boolean )
strTemp As cordes
colFolders As nouvelle Collection
vFolderName As Variant
strFolder = TrailingSlash ( strFolder )
strTemp = Dir ( strFolder & strFileSpec )
Do While strTemp <> ; vbNullString
colFiles.Add strFolder & strTemp
strTemp = Dir
boucle
Si bIncludeSubfolders Puis
strTemp = Dir ( strFolder , vbDirectory )
Do While strTemp <> vbNullString
( strTemp <> " . " ) et ( strTemp <> ".." ) Puis
( GetAttr ( strFolder & strTemp ) et vbDirectory ) < > 0 Then
colFolders.Add strTemp
End If End If
< p> strTemp = Dir
boucle
Chaque vFolderName En colFolders
Appel RecursiveDir ( colFiles , strFolder & vFolderName , strFileSpec , True)
Suivant vFolderName Photos
End If End Function
8
Créer la fonction suivante pour ajouter ou supprimer le "\\" des chemins de dossier :
publique TrailingSlash de fonction ( strFolder As String ) As String
Si Len ( strFolder ) > 0 Then
droite ( strFolder , 1) = "\\" Alors
TrailingSlash = strFolder
Else
TrailingSlash = strFolder & "\\"
End If End If
End Function
< br > 9
cliquez dans la " extractExcelFiles " sous-procédure et cliquez sur " F5" pour exécuter le programme .