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 |