Mover archivos con VBA FileSystemObject (MoveFile)

Este tutorial demostrará cómo utilizar el método MoveFile de FileSystemObject.

Mover archivos con VBA FileSystemObject

El método MoveFile mueve uno o más archivos de una ubicación a otra.

Establecer referencia de VBA

Primero, al usar FileSystemObjects, es posible que deba establecer una referencia a la biblioteca de tiempo de ejecución de secuencias de comandos VB: abra el Editor de Visual Basic (ALT + F11), seleccione Herramientas> Referencias en el menú desplegable y marque la casilla de verificación de 'Microsoft Scripting Runtime'.

FileSystemObject

En segundo lugar, debe crear FileSystemObject:

12 Atenuar FSO como nuevo FileSystemObjectEstablecer FSO = CreateObject ("Scripting.FileSystemObject")

Ahora tiene acceso a MoveFile y los otros métodos FileSystemObject.

Programación VBA | ¡Code Generator funciona para usted!

Mover un archivo

Para mover un solo archivo, puede usar la sintaxis simple de FSO.MoveFile (origen, destino).

1 FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt"

Como se mencionó anteriormente, primero debe crear el FileSystemObject:

1234567 Sub FSOMoveFile ()Atenuar FSO como nuevo FileSystemObjectEstablecer FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFile "C: \ Src \ TestFile.txt", "C: \ Dst \ ModTestFile.txt"End Sub

Mover varios archivos

Puede mover varios archivos con partes del mismo nombre:

1 FSO.MoveFile "C: \ Src \ TestFile * .txt", "C: \ Dst \"

O puede mover varios archivos con la misma extensión:

1 FSO.MoveFile "C: \ Src \ * .xlsx", "C: \ Dst \"

O simplemente todos los archivos de una carpeta:

1 FSO.MoveFile "C: \ Src \ *", "C: \ Dst \"

Tenga en cuenta que aquí utilizamos el carácter comodín *.

En lugar de usar el comodín *, puede mover todos los archivos en una carpeta usando un bucle For Each.

12345678910111213141516 Sub FSOMoveAllFiles ()Atenuar FSO como nuevo FileSystemObjectAtenuar FromPath como cadenaAtenuar ToPath como cadenaDim FileInFromFolder como objetoFromPath = "C: \ Src \"ToPath = "C: \ Dst \"Establecer FSO = CreateObject ("Scripting.FileSystemObject")Para cada FileInFromFolder en FSO.GetFolder (FromPath) .FilesFileInFromFolder.Move ToPathSiguiente FileInFromFolderEnd Sub

Mover archivo a una carpeta nueva

También puede mover los archivos a una carpeta recién creada. Para hacerlo, agregue el comando

1 MkDir "C: \ Dst \"

antes de declarar la ruta de destino.

1234567891011121314151617 Sub FSOMoveAllFiles ()Atenuar FSO como nuevo FileSystemObjectAtenuar FromPath como cadenaAtenuar ToPath como cadenaDim FileInFromFolder como objetoFromPath = "C: \ Src \"MkDir "C: \ Dst \"ToPath = "C: \ Dst \"Establecer FSO = CreateObject ("Scripting.FileSystemObject")Para cada FileInFromFolder en FSO.GetFolder (FromPath) .FilesFileInFromFolder.Move ToPathSiguiente FileInFromFolderEnd Sub

¿Cansado de buscar ejemplos de código VBA? ¡Prueba AutoMacro!

Mover carpetas

Puede utilizar el método analógico MoveFolder para mover carpetas.

1234567 Sub FSOMoveFolder ()Atenuar FSO como nuevo FileSystemObjectEstablecer FSO = CreateObject ("Scripting.FileSystemObject")FSO.MoveFolder "C: \ OldFolder", "C: \ Dst \ NewFolder"End Sub

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave