-
Cómo encontrar un directorio y subdirectorio en VBA
-
Encontrar un directorio y subdirectorios utilizando Visual Basic para Aplicaciones (VBA) no es tan complicado como usted puede pensar. En VBA, puede utilizar la función de "Dir" para obtener los nombres de directorio en un camino. Una vez que haya encontrado el directorio que está buscando, puede utilizar la ruta del directorio para encontrar subdirectorios. Este proceso es útil cuando se necesita para guardar un archivo en un directorio en particular, pero no tienen la ruta completa de la misma.Instrucciones
1 Lanzamiento de Microsoft Office Excel, haga clic en la pestaña "desarrolladores" y haga clic en "Visual Basic". Haga clic en el menú "Insertar" y haga clic en "Módulo" para insertar un nuevo módulo de código.
2 Escribe lo siguiente para crear un nuevo procedimiento de substitución:
findDirectories Private Sub ()
3 Agregue el código siguiente para crear tres variables que va a utilizar para encontrar el directorio de su interés:
Dim como secuencia startPath
mi_nombre Dim como secuencia
Dim dirFound As Boolean
4 Definir la unidad en la que desea buscar en el directorio y obtener el primer directorio:
startPath = "C: \"
mi_nombre = Dir (startPath, vbDirectory)
5 Crear un bucle while, buscar en cada directorio "C: \" hasta que el directorio "Temp" se ha encontrado, y llamar a la "getSubDirectories" procedimiento sub para obtener todos los subdirectorios que se encuentran en el directorio "Temp":
Do While dirFound = False
Si mi_nombre & lt;> "." Y mi_nombre & lt;> ".." Entonces
Si (GetAttr (startPath y mi_nombre) Y vbDirectory) = Entonces vbDirectory
Si mi_nombre = "Temp" Entonces
dirFound = True
getSubDirectories de llamadas (startPath y mi_nombre & "\")
Terminara si
Terminara si
Terminara si
Si (dirFound = False) A continuación,
mi_nombre = Dir
Terminara si
Lazo
End Sub
6 Copia y pega el código siguiente para crear el "getSubDirectories" procedimiento sub y mostrar todos los subdirectorios que se encuentran en el directorio "Temp" por medio de la ventana Inmediato:
Private Sub getSubDirectories (startPath como secuencia)
Dim myname As String
mi_nombre = Dir (startPath, vbDirectory)
Hacer mientras que mi_nombre & lt;> ""
Si mi_nombre & lt;> "." Y mi_nombre & lt;> ".." Entonces
Si (GetAttr (startPath y mi_nombre) Y vbDirectory) = Entonces vbDirectory
mi_nombre Debug.Print
Terminara si
Terminara si
mi_nombre = Dir
Lazo
End Sub
7 Pulse la tecla "Ctrl" y "G" para mostrar la ventana Inmediato. Haga clic dentro de "findDirectories" y pulse la tecla "F5" para ejecutar el programa.