Excel VBA FileCopy

Hay muchas formas de copiar o mover un archivo de una carpeta a otra. Podemos hacerlo manualmente copiando y cortando el icono del archivo y pegándolo en la carpeta de destino. Pero cuando se trata de automatizar este proceso de copia del archivo, también podemos hacerlo en VBA. Para copiar el archivo, tenemos una función disponible en VBA denominada como la misma "Copia de archivo".

Sintaxis de FileCopy en Excel VBA

Es muy fácil aplicar File Copy en VBA. La sintaxis de File Copy es como se muestra a continuación.

File Copy solo tiene dos componentes para alimentar. Que son:

  • Fuente : aquí colocaremos la ubicación de origen desde donde necesitamos copiar el archivo.
  • Destino : y esta será la carpeta de destino donde pegaremos el archivo copiado.

La sintaxis completa estará en el tipo de datos String. Porque usaremos la ruta del archivo que será como texto.

¿Cómo copiar un archivo en Excel VBA?

Ahora intentemos con algunos ejemplos de copia de archivos VBA en Excel.

Puede descargar esta plantilla de Excel Copiar un archivo de VBA aquí - VBA Copiar una plantilla de Excel de archivo

Ejemplo # 1 - FileCopy en VBA

En el primer ejemplo, veremos cómo copiar un archivo desde una ubicación de origen y pegarlo en una ubicación de destino de una manera muy simple.

Para esto, necesitamos un archivo de cualquier tipo o extensión. Aquí estamos considerando un archivo de Excel con extensión xlsx . Como podemos ver, hemos colocado ese archivo de Excel en una ubicación de fácil acceso llamada Test .

Ahora copiaremos este archivo con la ayuda de FileCopy a la carpeta de destino a continuación.

Paso 1: para esto, vaya a VBA y abra un módulo desde la opción desplegable del menú Insertar como se muestra a continuación.

Paso 2: ahora en el módulo abierto, escriba la subcategoría de VBA FileCopy o en cualquier otro nombre según su elección.

Código:

 Sub VBA_Copy1 () End Sub 

Paso 3: Ahora abra directamente la función FileCopy como se muestra a continuación.

Código:

 Sub VBA_Copy1 () FileCopy (End Sub 

Paso 4: Ahora, entre comillas, escriba la dirección de ubicación de origen seguida del nombre del archivo y la extensión como se muestra a continuación.

Código:

 Sub VBA_Copy1 () FileCopy "D: \ Test1 \ Hello.xlsx", End Sub 

Paso 5: Para la ubicación de Destino, vuelva a colocar la ruta en comillas seguidas de archivo y extensión.

Código:

 Sub VBA_Copy1 () FileCopy "D: \ Test1 \ Hello.xlsx", "D: \ VPB File \ April Files \ Hello.xlsx" End Sub 

Paso 6: Ahora compile el código y ejecútelo haciendo clic en el botón Reproducir que se encuentra debajo de la barra de menú. Veremos que el archivo de Excel con el nombre Test ahora se copia de la ubicación de origen a la ubicación de destino como se muestra a continuación. Como no había nada en el archivo, el tamaño del archivo es de 0 KB .

Ejemplo # 2 - FileCopy en VBA

En otro ejemplo, veremos cómo copiar el archivo desde la ubicación de origen al destino definiendo la variable. Este proceso es poco largo pero más confiable ya que estaremos arreglando los parámetros y la variable.

Paso 1: Ahora abra primero un nuevo módulo y escriba la subcategoría de Copia de archivo VBA como se muestra a continuación.

Código:

 Sub VBA_Copy2 () End Sub 

Paso 2: Primero, defina una variable donde colocaremos la ubicación de origen del archivo en el mismo archivo de Excel que hemos usado en el ejemplo-1 como String.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como String End Sub 

Paso 3: de manera similar, necesitaremos otra variable para la ubicación de destino.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como String Dim SecondLocation como String End Sub 

Paso 4: Ahora coloque la ubicación en la primera variable definida que es " FirstLocation " junto con el nombre del archivo y su extensión.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como cadena Dim SecondLocation como cadena FirstLocation = "D: \ Test1 \ Hello.xlsx" End Sub 

Paso 5: De manera similar, haga lo mismo para la ubicación de Destino usando la variable " SecondLocation" que hemos definido anteriormente.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como cadena Dim SecondLocation como cadena FirstLocation = "D: \ Test1 \ Hello.xlsx" SecondLocation = "D: \ Archivo VPB \ April Files \ Hello.xlsx" End Sub 

Paso 6: Ahora es el momento de usar la función FileCopy .

Código:

 Sub VBA_Copy2 () Dim FirstLocation como cadena Dim SecondLocation como cadena FirstLocation = "D: \ Test1 \ Hello.xlsx" SecondLocation = "D: \ Archivo VPB \ April Files \ Hello.xlsx" FileCopy End Sub 

Según la sintaxis de FileCopy primero, tenemos que poner la ubicación de origen, donde hemos guardado el archivo. Pero como ya hemos definido las carpetas de ubicación de origen y destino en las dos variables anteriores.

Paso 7: Entonces, aquí podemos seleccionar directamente esas variables. Primero seleccione la variable de ubicación de origen que es FirstLocation .

Código:

 Sub VBA_Copy2 () Dim FirstLocation como cadena Dim SecondLocation como cadena FirstLocation = "D: \ Test1 \ Hello.xlsx" SecondLocation = "D: \ VPB File \ April Files \ Hello.xlsx" FileCopy FirstLocation End Sub 

Paso 8: De nuevo de manera similar, seleccione la variable de ubicación de destino que es SecondLocation como se muestra a continuación.

Código:

 Sub VBA_Copy2 () Dim FirstLocation como cadena Dim SecondLocation como cadena FirstLocation = "D: \ Test1 \ Hello.xlsx" SecondLocation = "D: \ VPB File \ April Files \ Hello.xlsx" FileCopy FirstLocation, SecondLocation End Sub 

Paso 9: Una vez hecho, compilaremos el código presionando la tecla funcional F8. Y si no se encuentra ningún error, ejecute el código. Veremos que el archivo de la ubicación de origen se copia y se pega en la carpeta de destino como se muestra a continuación.

También podemos probar diferentes rutas de ubicación. Para la prueba, consideremos otra ubicación de origen donde tendremos un archivo de Word.

Como podemos ver, el archivo no tiene datos, por lo que el tamaño se muestra nuevamente como 0 KB.

Y la carpeta de destino será la carpeta Ubicación de salida que está debajo de la carpeta Ubicación de entrada. Si vemos dentro del archivo, no hay datos disponibles.

Ahora reemplazaremos el origen y el destino en las variables FirstLocation y Second Location respectivamente, seguidas del nombre del archivo y su extensión.

Código:

 Sub VBA_Copy2 () Dim FirstLocation As String Dim SecondLocation As String FirstLocation = "D: \ VPB File \ April Files \ New Excel \ Test Case.docx" SecondLocation = "D: \ VPB File \ April Files \ Final location \ Test Case. docx "FileCopy FirstLocation, SecondLocation End Sub 

Ahora ejecuta el código.

Veremos que el archivo de palabras de prueba ahora se copia de la carpeta Ubicación de entrada a la carpeta Ubicación de salida con el mismo tamaño que es 0 KB.

Ventajas de FileCopy en VBA

  • Se puede usar para copiar más de 1 archivo de una sola vez.
  • Se necesita una cantidad de tiempo similar para 10 archivos que para copiar un archivo.
  • Podemos usar cualquier tipo de archivo de extensión que queramos copiar.

Cosas para recordar

  • Siempre coloque el nombre del archivo y su extensión al final del nombre de la ubicación.
  • Cite los enlaces de destino y ubicación de origen en comillas invertidas.
  • Una vez hecho esto, guarde el código en Macro, permita que Excel use y conserve el código para propósitos futuros.
  • Siempre conceda el permiso para codificar para que pueda copiar el archivo desde la ubicación de origen y pegarlo en una ubicación de destino.

Artículos recomendados

Esta es una guía para FileCopy en VBA. Aquí discutimos cómo copiar un archivo de Excel usando el código VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Trabajando con VBA Active Cell
  2. Eliminar una fila en VBA
  3. ¿Cómo utilizar Excel VBA Transpose?
  4. Cómo reparar el error 1004 usando VBA

Categoría: