Copiar archivo en VBA

Iqra Hasnain 15 febrero 2024
Copiar archivo en VBA

Presentaremos cómo podemos copiar un archivo usando VBA con ejemplos.

Copiar archivo en VBA

La copia de archivos es una función de VBA que nos permite copiar archivos de una ubicación a cualquier ubicación que deseemos. Esta característica es muy fácil de usar.

Necesitamos marcar la ruta del archivo actual y la ruta del archivo de destino.

La sintaxis es como se muestra a continuación.

# vba
FileSysObj.CopyFile src, dst, [ overwrite ]

El src es el proveedor. Podemos copiar un archivo desde la fuente.

Es un lugar desde donde queremos copiar el archivo. Tenemos que declarar una ruta de carpeta totalmente elegible.

El dst es la carpeta de destino; pegaremos el archivo copiado en esta carpeta. Sobrescribir es opcional.

Tomemos un ejemplo y copiemos un nombre de archivo testFile de la carpeta. El código para esta función se muestra a continuación.

Sub TestFile()

Dim FileSysObj As Object

Set FileSysObj = CreateObject("Scripting.FileSystemObject")

Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\", True)

End Sub

Necesitaremos un objeto de la clase FileSystemObject. Formemos el objeto de la clase como se muestra a continuación.

Set FileSysObj = CreateObject("Scripting.FileSystemObject")

Ahora aplicaremos el método CopyFile como se muestra a continuación.

Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\", True)

Salida antes de ejecutar el código:

copiar archivo en vba primer ejemplo

Salida después de ejecutar el código:

copie el archivo en el primer ejemplo de vba después de ejecutar el código

Tenemos tres parámetros: Origen, Destino y Sobrescribir. Como fuente y destino son lo mismo, usaremos sobrescribir.

Tenemos que fijarlo en true o false.

Lo estableceremos en True en nuestro caso, que dice que nuestro archivo original se sobrescribe. Esto es lo que deberíamos haber hecho, pero veamos qué sucede si arreglamos sobrescribir a False.

Esto solo se puede hacer cambiando el código, como se muestra a continuación.

Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\", False)

Producción:

copiar archivo en vba con sobrescribir como falso

Como resultado, se producirá un error. También podemos renombrar un archivo mientras lo copiamos. Es como copiar un archivo.

Solo tenemos que personalizar la ruta de destino con un nombre diferente, como se muestra a continuación en el código.

Sub TestFile()
Dim FileSysObj As Object

Set FileSysObj = CreateObject("Scripting.FileSystemObject")

Call FileSysObj.CopyFile("D:\Test\testFile.xlsx", "D:\Test\Dst\testFile2.xlsx", True)
End Sub

Producción:

copiar archivo en vba con cambio de nombre

Artículo relacionado - VBA File