Come trovare una directory e sottodirectory in VBA

November 9

Come trovare una directory e sottodirectory in VBA


Trovare una directory e sottodirectory utilizzando Visual Basic, Applications Edition (VBA) non è così complicato come si potrebbe pensare. In VBA, è possibile utilizzare la funzione "Dir" per ottenere i nomi delle directory in un percorso. Una volta trovata la directory che stai cercando, è possibile utilizzare il percorso della directory per trovare le sottodirectory. Questo processo è utile quando è necessario salvare un file in una particolare directory, ma non hanno il percorso completo per esso.

istruzione

1 Avviare Microsoft Office Excel, fare clic sulla scheda "Sviluppatore" e fare clic su "Visual Basic". 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 procedura sotto:

findDirectories Private Sub ()

3 Aggiungere il seguente codice per creare tre variabili si intende utilizzare per trovare la directory di interesse:

Dim startPath As String

mionome Dim As String

Dim dirFound Come booleano

4 Definire l'unità in cui si desidera cercare la directory e ottenere il primo elenco:

startPath = "C: \"

myname = Dir (startPath, vbDirectory)

5 Creare un ciclo while, cercare ogni directory "C: \" fino a quando è stato trovato nella directory "Temp", e chiamare la procedura secondaria "getSubDirectories" per ottenere tutte le sottodirectory presenti nella directory "Temp":

Do While dirFound = False

Se mionome & lt;> "." E mionome & lt;> ".." Poi

Se (GetAttr (startPath & mionome) E vbDirectory) = vbDirectory Poi

Se myname = "Temp" Allora

dirFound = True

getSubDirectories di chiamata (startPath & mionome & "\")

Finisci se

Finisci se

Finisci se

Se (dirFound = False) Poi

myname = Dir

Finisci se

Ciclo continuo

End Sub

6 Copiare e incollare il seguente codice per creare la routine Sub "getSubDirectories" e potrai vedere tutti i sottodirectory presenti nella directory "Temp" utilizzando la finestra immediata:

Private Sub getSubDirectories (startPath As String)

Dim myname As String

myname = Dir (startPath, vbDirectory)

Do While mionome & lt;> ""

Se mionome & lt;> "." E mionome & lt;> ".." Poi

Se (GetAttr (startPath & mionome) E vbDirectory) = vbDirectory Poi

Debug.Print MyName

Finisci se

Finisci se

myname = Dir

Ciclo continuo

End Sub

7 Premere il tasto "Ctrl" e "G" per visualizzare la finestra immediata. Fare clic all'interno "findDirectories" e premere il tasto "F5" per eseguire il programma.