“Conocimiento software>Microsoft Access

Cómo extraer los archivos de Excel de varias carpetas con VBA

2015/4/24
Conocer cómo extraer archivos de Excel de varias carpetas utilizando Visual Basic para Aplicaciones ( VBA) que puede ahorrar tiempo cuando tenga que buscar en su ordenador los archivos de Excel para almacenarlos en una carpeta. VBA se puede utilizar en aplicaciones de Microsoft Office como Excel para automatizar tareas rutinarias, como la búsqueda de archivos en carpetas. La mejor manera de buscar archivos en varias carpetas es mediante el uso de programación recursiva. Programación recursiva se utiliza cuando se necesita una función para llamarse desde dentro de la función. Cosas que necesitará
Microsoft Office
Ver Más instrucciones
1

lanzamiento de Microsoft Office Excel , haga clic en " programador", y haga clic en "Visual Basic " para iniciar el Editor de Visual Basic . Haga clic en el menú " Insertar" y haga clic en " módulos" para insertar un nuevo módulo de código
2

Escriba lo siguiente para crear un nuevo sub-procedimiento : .

ColFiles Dim As New Collection
3

Copia y pega el siguiente para crear sus variables:

extractPath dévil como secuencia

fileName Dim As String Dim

pos As Integer
4

Defina la ruta en la que desea copiar los archivos de Excel encontrados :

extractPath = "C : \\ temp \\ "
5

Agregue el siguiente código para llamar a la función que va a buscar los archivos de Excel para la extracción :

colFiles RecursiveDir , "F : \\ moreExcelFiles \\", " *. xlsx " , Verdadero
6 < p> Agregue el siguiente código para copiar los archivos que se encuentran en el camino definido en el paso 3 :

vFile Dim As Variant

For Each vFile en colFiles

pos = InStrRev ( vFile , " \\ " , vbTextCompare )

fileName = Right ( vFile , Len ( vFile ) - pos)

FileCopy vFile , extractPath y fileName

Siguiente vFile

End sub ​​
7

Definir la función " RecursiveDir " para buscar las carpetas y sub- carpetas para archivos de Excel :

Public Function RecursiveDir ( colFiles como colección , _

strFolder As String , _

strFileSpec As String , _

bIncludeSubfolders As Boolean ) guía

strTemp dévil como secuencia

colFolders Dim Como New Collection Hotel

vFolderName Dim As Variant

strFolder = TrailingSlash ( strFolder )

strTemp = Dir ( strFolder y strFileSpec )

Do While strTemp < > ; vbNullString

colFiles.Add strFolder y strTemp

strTemp = Dir

Loop

Si bIncludeSubfolders Entonces

strTemp = Dir ( strFolder , vbDirectory )

Do While strTemp < > vbNullString

Si ( strTemp < > ".") Y ( strTemp < > ".." ) Luego

Si ( GetAttr ( strFolder y strTemp ) y vbDirectory ) < > 0 Entonces

colFolders.Add strTemp

End If End If


< p> strTemp = Dir

Loop

For Each vFolderName En colFolders

Call RecursiveDir ( colFiles , strFolder y vFolderName , strFileSpec , True)

Siguiente vFolderName

End If End Function


8

Cree la siguiente función para añadir o quitar el " \\ " de las rutas de las carpetas :

Pública Función TrailingSlash ( strFolder As String ) As String

Si Len ( strFolder ) > 0 entonces

Si Derecha ( strFolder , 1 ) = " \\ " Entonces

TrailingSlash = strFolder

demás

TrailingSlash = strFolder y "\\ "

End If End If


Función End of
9

Haga clic dentro del " extractExcelFiles " sub - procedimiento y haga clic en "F5 " para ejecutar el programa.

Microsoft Access
Cómo utilizar las macros de Word para insertar tablas de Excel
Cómo crear una consulta de un filtro en Microsoft Access
Cómo hacer títulos de las columnas en Excel 2007
Cómo quitar la protección de contraseña de Excel
Cómo trabajar con tablas dinámicas en Excel
¿Cómo se accede al msn messager en la escuela?
Cómo comprobar la repetición de palabras en Excel
Consejos para una oficina de base de datos Microsoft Access
Conocimiento de la computadora © http://www.ordenador.online