Copiar archivo / libro de VBA

VBA le permite copiar un archivo, usando el FileSystemObject. En este tutorial, aprenderá a copiar y cambiar el nombre de un archivo específico.

Si desea aprender a cambiar el nombre de un archivo, puede hacer clic en este enlace: VBA Rename File

Copiar un archivo / libro de trabajo

Mostraremos cómo copiar el archivo existente. Archivo de muestra 1.xlsx en la carpeta Carpeta VBA. En este ejemplo, no cambiaremos el nombre del archivo, solo lo copiaremos y sobrescribiremos. Actualmente, la carpeta solo tiene este archivo:

Imagen 1. Archivo en la carpeta C: \ Carpeta VBA

Aquí está el código:

12345 Dim oFSO como objetoEstablecer oFSO = CreateObject ("Scripting.FileSystemObject")Llame a oFSO.CopyFile ("C: \ Carpeta VBA \ Archivo de muestra 1.xlsx", "C: \ Carpeta VBA \", True)

Primero necesitas crear el objeto de la clase. Scripting.FileSystemObject:

1 Establecer oFSO = CreateObject ("Scripting.FileSystemObject")

Entonces podemos usar el método Copiar archivo:

1 Llame a oFSO.CopyFile ("C: \ Carpeta VBA \ Archivo de muestra 1.xlsx", "C: \ Carpeta VBA \", True)

El primer parámetro del método es la ruta de origen y el segundo es la ruta de destino. El tercer parámetro es Sobrescribir. Como tenemos las mismas rutas de origen y destino, debemos configurar Sobrescribir a Verdadero o Falso. En este ejemplo, ponemos True, lo que significa que se sobrescribe el archivo original.

Veamos ahora qué sucede si tenemos los mismos destinos, pero configuramos Sobrescribir en Falso. Solo necesita cambiar esta línea del código:

1 Llame a oFSO.CopyFile ("C: \ Carpeta VBA \ Archivo de muestra 1.xlsx", "C: \ Carpeta VBA \", True)

Como resultado, obtendrá un error como puede ver en la Imagen 2:

Imagen 2. Error al copiar el archivo

Copiar y cambiar el nombre de un archivo

Otra opción posible al copiar un archivo es cambiarle el nombre. Es similar a copiar un archivo, pero ahora solo necesita establecer la ruta de destino con un nombre diferente. Aquí está el código:

12345 Dim oFSO como objetoEstablecer oFSO = CreateObject ("Scripting.FileSystemObject")Llame a oFSO.CopyFile ("C: \ Carpeta VBA \ Archivo de muestra 1.xlsx", "C: \ Carpeta VBA \ Archivo de muestra Copy.xlsx")

Como puede ver en la última línea del código, queremos copiar el archivo Archivo de muestra 1.xlsx en la misma carpeta y asígnele el nombre Archivo de muestra Copy.xlsx:

1 Llame a oFSO.CopyFile ("C: \ Carpeta VBA \ Archivo de muestra 1.xlsx", "C: \ Carpeta VBA \ Archivo de muestra Copy.xlsx")

Ahora tenemos dos archivos en la carpeta VBA. El resultado del código está en la Imagen 3:

Imagen 3. Copie y cambie el nombre del archivo

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

wave wave wave wave wave