Excel VBA FileCopy

Er zijn veel manieren om een ​​bestand van de ene map naar de andere te kopiëren of te verplaatsen. We kunnen dit handmatig doen vanuit het pictogram Bestand kopiëren en knippen en in de doelmap plakken. Maar als het gaat om het automatiseren van dit proces van het kopiëren van het bestand, kunnen we dat ook in VBA doen. Om het bestand te kopiëren, hebben we een functie beschikbaar in VBA met de naam “File Copy”.

Syntaxis van FileCopy in Excel VBA

Het is heel eenvoudig om File Copy in VBA toe te passen. De syntaxis van File Copy is zoals hieronder weergegeven.

File Copy heeft slechts twee componenten om te voeden. Welke zijn:

  • Bron - hier zullen we de bronlocatie plaatsen van waar we het bestand moeten kopiëren.
  • Bestemming - En dit zal de doelmap zijn waar we het gekopieerde bestand zullen plakken.

De volledige syntaxis bevindt zich in het gegevenstype String. Omdat we het pad van het bestand zullen gebruiken dat als tekst zal zijn.

Hoe een bestand te kopiëren in Excel VBA?

Laten we nu proberen met enkele voorbeelden over VBA-bestandskopie in Excel.

U kunt deze VBA hier een Excel-sjabloon voor bestanden downloaden - VBA Een Excel-sjabloon voor bestanden kopiëren

Voorbeeld # 1 - FileCopy in VBA

In het eerste voorbeeld zullen we zien hoe u een bestand van een bronlocatie kunt kopiëren en op een zeer eenvoudige manier op een doellocatie kunt plakken.

Hiervoor hebben we een bestand van welke aard of extensie dan ook nodig. Hier overwegen we een Excel-bestand met de extensie xlsx . Zoals we kunnen zien, hebben we dat Excel-bestand op een locatie geplaatst die gemakkelijk toegankelijk is, genaamd Test .

Nu zullen we dit bestand met behulp van FileCopy naar de onderstaande doelmap kopiëren.

Stap 1: Ga hiervoor naar VBA en open een module via de vervolgkeuzelijst Menu invoegen, zoals hieronder weergegeven.

Stap 2: Schrijf nu in de geopende module de subcategorie van VBA FileCopy of in een andere naam volgens uw keuze.

Code:

 Sub VBA_Copy1 () End Sub 

Stap 3: Open nu direct de FileCopy- functie zoals hieronder wordt getoond.

Code:

 Sub VBA_Copy1 () FileCopy (End Sub 

Stap 4: Schrijf nu tussen aanhalingstekens het bronlocatieadres gevolgd door de bestandsnaam en de extensie zoals hieronder weergegeven.

Code:

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

Stap 5: Zet voor de doellocatie het pad opnieuw in omgekeerde komma's gevolgd door bestand en extensie.

Code:

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

Stap 6: compileer nu de code en voer deze uit door op de knop Afspelen te klikken die zich onder de menubalk bevindt. We zullen zien dat het excel-bestand met de naam Test nu is gekopieerd van de bronlocatie naar de bestemmingslocatie, zoals hieronder wordt getoond. Omdat er niets in het bestand was, komt de grootte van het bestand uit op 0 KB .

Voorbeeld # 2 - FileCopy in VBA

In een ander voorbeeld zullen we zien hoe het bestand van de bronlocatie naar de bestemming wordt gekopieerd door de variabele te definiëren. Dit proces is weinig lang maar betrouwbaarder omdat we de parameters en de variabele zullen vaststellen.

Stap 1: Open nu eerst een nieuwe module en schrijf de subcategorie van VBA File Copy zoals hieronder getoond.

Code:

 Sub VBA_Copy2 () Einde Sub 

Stap 2: Definieer eerst een variabele waar we de bronlocatie van het bestand hetzelfde Excel-bestand zullen plaatsen dat we in voorbeeld-1 als String hebben gebruikt.

Code:

 Sub VBA_Copy2 () Dim FirstLocation As String End Sub 

Stap 3: Op dezelfde manier hebben we een andere variabele nodig voor de doellocatie.

Code:

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

Stap 4: Plaats nu de locatie in de eerste gedefinieerde variabele die " FirstLocation " is, samen met de bestandsnaam en de extensie.

Code:

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

Stap 5: Doe op dezelfde manier hetzelfde voor de doellocatie met behulp van de variabele " SecondLocation" die we hierboven hebben gedefinieerd.

Code:

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

Stap 6: Nu is het tijd om de FileCopy- functie te gebruiken.

Code:

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

Volgens de syntaxis van FileCopy moeten we eerst de bronlocatie plaatsen, waar we het bestand hebben bewaard. Maar zoals we hierboven al de bron- en bestemmingslocatiemappen voor beide variabelen hebben gedefinieerd.

Stap 7: Dus hier kunnen we die variabelen direct selecteren. Selecteer eerst de bronlocatievariabele die FirstLocation is .

Code:

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

Stap 8: Selecteer opnieuw op dezelfde manier de bestemmingslocatievariabele die SecondLocation is, zoals hieronder wordt getoond.

Code:

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

Stap 9: Eenmaal gedaan, zullen we de code compileren door op F8 functionele toets te drukken. En als er geen fout wordt gevonden, voer dan de code uit. We zullen zien dat het bestand van de bronlocatie wordt gekopieerd en geplakt in de doelmap zoals hieronder wordt getoond.

We kunnen ook een ander locatiepad proberen. Laten we voor de test eens kijken naar een andere bronlocatie waar we een Word-bestand hebben.

Zoals we kunnen zien, bevat het bestand geen gegevens, dus de grootte wordt opnieuw weergegeven als 0 KB.

En de doelmap zal de map Uitvoerlocatie zijn die zich onder de map Invoerlocatie bevindt. Als we het bestand zien, zijn er geen gegevens beschikbaar.

Nu zullen we de bron en bestemming vervangen in respectievelijk de variabelen FirstLocation en Second Location, gevolgd door de bestandsnaam en de extensie.

Code:

 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 

Voer nu de code uit.

We zullen zien dat het testwoordbestand nu is gekopieerd van de map Invoerlocatie naar de map Uitvoerlocatie met dezelfde grootte die 0 KB is.

Voordelen van FileCopy in VBA

  • Het kan worden gebruikt voor het kopiëren van meer dan 1 bestand in één opname.
  • Het duurt even lang voor 10 bestanden als voor het kopiëren van één bestand.
  • We kunnen elk extensiebestandstype gebruiken dat we willen kopiëren.

Dingen om te onthouden

  • Plaats de bestandsnaam en de extensie altijd aan het einde van de locatienaam.
  • Citeer de bestemming en bronlocatielinks in omgekeerde komma's.
  • Als u klaar bent, slaat u de code op in Macro inschakelen om de code te gebruiken en te bewaren voor toekomstig doel.
  • Verleen altijd de toestemming om te coderen zodat het het bestand van de bronlocatie kan kopiëren en op een doellocatie kan plakken.

Aanbevolen artikelen

Dit is een handleiding voor FileCopy in VBA. Hier bespreken we hoe u een Excel-bestand kunt kopiëren met behulp van VBA-code, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Werken met VBA Active Cell
  2. Een rij verwijderen in VBA
  3. Hoe Excel VBA Transpose gebruiken?
  4. Hoe 1004 Fout met behulp van VBA te repareren

Categorie: