Trouver un répertoire et sous-répertoires en utilisant Visual Basic pour Applications ( VBA ) n'est pas aussi compliqué que vous ne le pensez. Dans VBA, vous pouvez utiliser la fonction " Dir" pour obtenir des noms de répertoires dans un chemin . Une fois que vous avez trouvé le répertoire que vous cherchez , vous pouvez utiliser le chemin du répertoire de trouver des sous-répertoires . Ce processus est utile lorsque vous avez besoin d'enregistrer un fichier dans un répertoire particulier , mais n'ont pas le chemin complet pour cela. Choses que vous devez
Microsoft Office Excel
Voir Plus Instructions
1
lancement de Microsoft Office Excel , cliquez sur l'onglet « Développeur » et cliquez sur « Visual Basic ». 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 : .
FindDirectories Private Sub ( )
3
Ajoutez le code suivant pour créer trois variables que vous allez utiliser pour trouver le répertoire d'intérêt :
startPath Dim As String
mon_nom Dim As String Photos
dirFound As Boolean
4
Définir le lecteur sur lequel vous souhaitez effectuer la recherche pour le répertoire et obtenir le premier annuaire :
startPath = " C: \\" Photos
mon_nom = Dir ( startPath , vbDirectory )
5
Créer une boucle while , rechercher tous les répertoires dans "C: \\ " jusqu'à ce que le répertoire " Temp" a été trouvé, et appeler les « getSubDirectories " sous procédure pour obtenir tous les sous-répertoires présents dans le répertoire "Temp" :
faire pendant dirFound = False
Si mon_nom <> " . " Et mon_nom <> ".." Puis
( GetAttr ( startPath & mon_nom ) et vbDirectory ) = vbDirectory Puis
Si mon_nom = " Temp" Alors
dirFound = True
Appel getSubDirectories ( startPath & mon_nom & "\\" )
End If End If
End If
( dirFound = False ) Puis
mon_nom = Dir
End If
boucle
End Sub
6
Copiez et collez le code suivant pour créer les « getSubDirectories "sub procédure et afficher tous les sous-répertoires présents dans le répertoire" Temp " dans la fenêtre immédiate: Photos
getSubDirectories Private Sub ( startPath As String )
de myname Dim As String
< p > mon_nom = Dir ( startPath , vbDirectory )
Do While mon_nom <> ""
Si mon_nom <> " . " Et mon_nom <> ".." Puis
( GetAttr ( startPath & mon_nom ) et vbDirectory ) = vbDirectory Puis
Debug.Print mon_nom
End If End If
mon_nom = Dir
boucle
End Sub
7
Appuyez sur "Ctrl " et " G " pour afficher la fenêtre Exécution. Cliquez à l'intérieur " findDirectories " et appuyez sur "F5" pour exécuter le programme .