VBA-bestand kopiëren

Excel VBA FileCopy-functie

Bestand kopiëren is een ingebouwde vba-functie die wordt gebruikt om het bestand van de ene locatie naar de andere genoemde locatie te kopiëren. Om deze functie te gebruiken, moeten we het huidige bestandspad en het doelbestandspad vermelden.

Oké, laten we eens kijken naar de syntaxis van de FileCopy-functie.

  • Bron: dit is niets anders dan waar we het bestand moeten kopiëren. We moeten het volledig gekwalificeerde mappad vermelden.
  • Bestemming: dit is de bestemmingsmap waarin we het gekopieerde bestand moeten plakken.

Voorbeelden

Hieronder staan ​​de voorbeelden van het kopiëren van bestanden met VBA-code.

U kunt deze VBA File Copy Excel-sjabloon hier downloaden - VBA File Copy Excel-sjabloon

Voorbeeld 1

Laten we beginnen met een eenvoudig voorbeeld. Ik heb een bestand met de naam "Verkoop april 2019" in de map. Hieronder ziet u de afbeelding van dezelfde ie " Bron ".

Vanaf de bovenstaande locatie wil ik dit bestand kopiëren en in een andere map plakken. Hieronder ziet u de afbeelding van hetzelfde, namelijk " Bestemmingsbron".

Oké, laten we de code ervoor schrijven.

Open de FileCopy- functie in de Sub-procedure.

Code:

 Sub FileCopy_Example1 ()

FileCopy

Einde Sub

Nu voor het eerste argument, moeten we het bestandspad vermelden waar onze huidige zich bevindt.

Code:

 Sub FileCopy_Example1 ()

FileCopy “D: \ Mijn bestanden \ VBA \ April-bestanden

Einde Sub

Na het vermelden van het mappad moeten we ook het bestand met de bestandsextensie vermelden. Noem dus de bestandsnaam door een backslash (\) te plaatsen.

Code:

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

Geef nu in het tweede argument aan waar we het gekopieerde bestand moeten plakken.

Code:

 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 

Een ding dat we hierna moeten doen door het mappad aan het einde te vermelden, moeten we ook de bestandsnaam vermelden in het bestemmingsargument.

Voer nu de code uit met behulp van de F5-toets of handmatig, en het zal het bestand van de onderstaande locatie naar een bestemmingslocatie kopiëren.

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

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

Voorbeeld # 2 - Gebruik variabelen om het bronpad en het bestemmingspad op te slaan.

In het vorige voorbeeld hebben we het bronpad en het bestemmingspad rechtstreeks aan de formule geleverd. Maar dit is niet de beste methode om door te gaan, dus laten we ze opslaan in variabelen.

Kijk voor een voorbeeld naar de onderstaande code.

Code:

 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 

Ik zal de code in detail voor je uitleggen.

Eerst heb ik twee variabelen verklaard.

 Dim SourcePath As String Dim DestinationPath As String 

Vervolgens heb ik voor de eerste variabele het mappad toegewezen van waaruit het het bestand moet kopiëren en de bestandsnaam samen met de bestandsextensie.

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

Voor de tweede variabele heb ik op dezelfde manier het pad van de bestemmingsmap met de bestandsnaam en de Excel-extensie toegewezen.

DestinationPath = "D: \ My Files \ VBA \ Destination Folder \ Sales April 2019.xlsx"

Vervolgens heb ik voor de formule FileCopy deze variabelen opgegeven in plaats van lange mappadstrings.

FileCopy SourcePath, DestinationPath

Op deze manier kunnen we variabelen gebruiken om de paden op te slaan en efficiënt te gebruiken.

Voorbeeld # 3 - Fout bij het kopiëren van bestanden

Soms komt de functie voor het kopiëren van bestanden de foutmelding "Toestemming geweigerd" tegen.

De reden waarom we deze fout krijgen, is dat wanneer het kopieerbestand wordt geopend en als je probeert de bovenstaande fout te kopiëren, het bestand altijd sluit en de code uitvoert.