Funció VBA FileCopy | Copia el fitxer d’un directori a un altre

Funció FileCopy d'Excel VBA

File Copy és una funció vba incorporada que s’utilitza per copiar el fitxer d’una ubicació a una altra ubicació esmentada. Per utilitzar aquesta funció, hem d’esmentar la ruta actual del fitxer i la ruta de destinació.

D’acord, vegem la sintaxi de la funció FileCopy.

  • Font: Això no és res més que des d'on hem de copiar el fitxer. Hem d’esmentar el camí de la carpeta completament qualificat.
  • Destinació: Aquesta és la carpeta de destinació on hem d’enganxar el fitxer copiat.

Exemples

A continuació es mostren els exemples de com copiar fitxers mitjançant el codi VBA.

Podeu descarregar aquesta plantilla Excel de còpia de fitxers VBA aquí: plantilla Excel de còpia de fitxers VBA

Exemple 1

Comencem amb un exemple senzill. Tinc un fitxer anomenat "Vendes abril de 2019" a la carpeta. A continuació es mostra la imatge del mateix, és a dir, "Font”.

Des de la ubicació anterior, vull copiar aquest fitxer i enganxar-lo a una carpeta diferent. A continuació es mostra la imatge del mateix, és a dir, "Font de destinació ”.

D’acord, escrivim el codi.

Obert FileCopy funció dins del procediment Sub.

Codi:

 SubCòpia_exemple_expedient1 ()

FileCopy

Finalitzar sub

Ara, per al primer argument, hem d'esmentar el camí del fitxer on es troba el nostre corrent.

Codi:

 SubCòpia_exemple_expedient1 ()

FileCopy “D: \ My Files \ VBA \ April Files

Finalitzar sub

Després d’esmentar el camí de la carpeta, també hem d’esmentar el fitxer amb extensió de fitxer. Per tant, mencioneu el nom del fitxer posant una barra invertida (\).

Codi:

 Sub FileCopy_Example1 () FileCopy "D: \ My Files \ VBA \ April Files \ Sales April 2019.xlsx", End Sub 

Ara, al segon argument, mencioneu on hem d’enganxar el fitxer copiat.

Codi:

 Sub FileCopy_Example1 () FileCopy "D: \ My Files \ VBA \ April Files \ Sales April 2019.xlsx", "D: \ My Files \ VBA \ Destination Folder \ Sales April 2019.xlsx" End Sub 

Una cosa que hem de fer a continuació esmentar el camí de la carpeta al final, també hem d’esmentar el nom del fitxer a l’argument de destinació.

Ara executeu el codi amb la tecla F5 o manualment i copiarà el fitxer des de la ubicació inferior a una ubicació de destinació.

"D: \ My Files \ VBA \ April Files \ Sales Abril 2019.xlsx"

"D: \ Els meus fitxers \ VBA \ Carpeta de destinació \ Vendes abril de 2019.xlsx"

Exemple 2: utilitzeu les variables per emmagatzemar el camí d'origen i el camí de destinació.

A l'exemple anterior, hem proporcionat el camí d'origen i el camí de destinació directament a la fórmula. Però aquesta no és la millor pràctica per continuar, així que anem a emmagatzemar-les en variables.

Per obtenir un exemple, mireu el codi següent.

Codi:

 Sub FileCopy_Example2 () Dim SourcePath As String Dim DestinationPath As String SourcePath = "D: \ My Files \ VBA \ April Files \ Sales April 2019.xlsx" DestinationPath = "D: \ My Files \ VBA \ Destination Folder \ Sales April 2019. xlsx "FileCopy SourcePath, DestinationPath End Sub 

Deixeu-me explicar-vos el codi amb detall.

Primer he declarat dues variables.

 Atenuar SourcePath com a cadena Atenuar DestinationPath com a cadena 

Després, per a la primera variable, he assignat el camí de la carpeta des d'on ha de copiar el fitxer i el nom del fitxer juntament amb la seva extensió.

SourcePath = "D: \ My Files \ VBA \ April Files \ Sales Abril 2019.xlsx"

De manera similar, per a la segona variable, he assignat el camí de la carpeta de destinació amb el nom del fitxer i l'extensió excel.

Camí de destinació = "D: \ Els meus fitxers \ VBA \ Carpeta de destinació \ Sales abril de 2019.xlsx"

A continuació, per a la fórmula FileCopy, he proporcionat aquestes variables en lloc de llargues cadenes de camí de carpeta.

FileCopy SourcePath, DestinationPath

Així, podem utilitzar variables per emmagatzemar els camins i utilitzar-los de manera eficient.

Exemple 3: error amb la funció de còpia de fitxers

De vegades, la funció de còpia de fitxer troba un error de "denegació del permís".

El motiu pel qual rebem aquest error, ja que quan s'obre el fitxer de còpia i si intenteu copiar l'error anterior, tanqueu sempre el fitxer i executeu el codi.