Tecnología

Inicio

Cómo encontrar un directorio y subdirectorio en VBA

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.