Hoe maak je een Directory en subdirectory VBA

Hoe maak je een Directory en subdirectory VBA


Het vinden van een map en submappen met behulp van Visual Basic for Applications (VBA) is niet zo ingewikkeld als u misschien denkt. In VBA, kunt u de functie "Dir" te gebruiken om directory namen te verkrijgen in een pad. Zodra u de map die u zoekt hebt gevonden, kunt u het pad gebruiken om submappen te vinden. Dit proces is handig als je nodig hebt om een ​​bestand op te slaan in een bepaalde map, maar niet over het volledige pad voor het.

instructies

1 Lancering Microsoft Office Excel, klikt u op het tabblad "Ontwikkelaar" en klik op "Visual Basic." Klik op het menu "Invoegen" en klik op "Module" om een ​​nieuwe code module in te voegen.

2 Typ het volgende om een ​​nieuwe sub-procedure te maken:

Private Sub findDirectories ()

3 Voeg de volgende code om drie variabelen die u wilt gebruiken om de directory van belang te vinden te maken:

Dim startPath As String

Dim myname As String

Dim dirFound zoals Van Boole

4 Definieer het station waar u wilt zoeken naar de directory en ontvang de eerste directory:

startPath = "C: \"

myname = Dir (startPath, vbDirectory)

5 Maak een while-lus, zoeken elke map in de "C: \" totdat de "Temp" directory is gevonden, en bel de "getSubDirectories" sub procedure om alle submappen vinden in de "Temp" directory te krijgen:

Do While dirFound = False

Als myname & lt;> '. " En myname & lt;> ".." Dan

Als (GetAttr (startPath & myname) En vbDirectory) = vbDirectory Dan

Als myname = "Temp" Dan

dirFound = True

Call getSubDirectories (startPath & myname & "\")

Stop als

Stop als

Stop als

Als (dirFound = False) Then

myname = Dir

Stop als

Lus

end Sub

6 Kopieer en plak de volgende code om de "getSubDirectories" sub procedure te creëren en weer te geven alle submappen vinden in de "Temp" directory met behulp van het venster Direct:

Private Sub getSubDirectories (startPath als Koord)

Dim myname As String

myname = Dir (startPath, vbDirectory)

Do While myname & lt;> ""

Als myname & lt;> '. " En myname & lt;> ".." Dan

Als (GetAttr (startPath & myname) En vbDirectory) = vbDirectory Dan

Debug.Print myname

Stop als

Stop als

myname = Dir

Lus

end Sub

7 Druk op "Ctrl" en "G" om het venster Direct weer te geven. Klik binnen "findDirectories" en druk op "F5" om het programma uit te voeren.