VBA FileCopy -toiminto | Kopioi tiedosto yhdestä hakemistosta toiseen

Excel VBA FileCopy -toiminto

Tiedoston kopiointi on sisäänrakennettu vba-toiminto, jota käytetään kopioimaan tiedosto paikasta toiseen mainittuun paikkaan. Tämän toiminnon käyttämiseksi meidän on mainittava nykyinen tiedostopolku ja kohdetiedoston polku.

Ok, katsotaanpa FileCopy-funktion syntaksia.

  • Lähde: Tämä ei ole muuta kuin mistä meidän on kopioitava tiedosto. Meidän on mainittava täysin pätevä kansiopolku.
  • Kohde: Tämä on kohdekansio, johon meidän on liitettävä kopioitu tiedosto.

Esimerkkejä

Alla on esimerkkejä tiedostojen kopioimisesta VBA-koodilla.

Voit ladata tämän VBA-tiedostokopio Excel-mallin täältä - VBA-tiedostokopio Excel-malli

Esimerkki 1

Aloitetaan yksinkertaisella esimerkillä. Minulla on kansiossa tiedosto nimeltä Myynti huhtikuu 2019. Alla on sama kuva eli " Lähde ".

Haluan kopioida tämän tiedoston yllä olevasta sijainnista ja liittää toiseen kansioon. Alla on kuva samasta eli " Kohde lähde".

Ok, kirjoitetaan sille koodi.

Avaa FileCopy- toiminto Sub-prosessin sisällä.

Koodi:

 AlitiedostoKopio_esimerkki1 ()

FileCopy

End Sub

Ensimmäisen argumentin osalta meidän on mainittava tiedostopolku, jossa nykyinen on.

Koodi:

 AlitiedostoKopio_esimerkki1 ()

FileCopy “D: \ Omat tiedostot \ VBA \ Huhtikuun tiedostot

End Sub

Mainittuaan kansiopolun meidän on mainittava myös tiedosto, jolla on tiedostotunniste. Joten mainitse tiedoston nimi laittamalla taaksepäin vinoviiva (\).

Koodi:

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

Mainitse nyt toisessa argumentissa, mihin meidän on liitettävä kopioitu tiedosto.

Koodi:

 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 

Yksi asia, joka meidän on tehtävä jäljempänä mainitsemalla kansion polku lopussa, meidän on mainittava myös tiedoston nimi kohde-argumentissa.

Suorita koodi nyt F5-näppäimellä tai manuaalisesti, jolloin se kopioi tiedoston alla olevasta sijainnista määränpäähän.

"D: \ Omat tiedostot \ VBA \ Huhtikuun tiedostot \ Myynti huhtikuu 2019.xlsx"

"D: \ Omat tiedostot \ VBA \ Kohdekansio \ Myynti huhtikuu 2019.xlsx"

Esimerkki # 2 - Käytä muuttujia lähdepolun ja kohdepolun tallentamiseen.

Edellisessä esimerkissä olemme toimittaneet lähdepolun ja kohdepolun suoraan kaavaan. Mutta tämä ei ole paras tapa jatkaa, joten tallennetaan ne muuttujiin.

Katso esimerkki alla olevasta koodista.

Koodi:

 Sub FileCopy_Example2 () Himmennä SourcePath merkkijonona Dim DestinationPath As String SourcePath = "D: \ Omat tiedostoni \ VBA \ Huhtikuun tiedostot \ Myynti huhtikuu 2019.xlsx" DestinationPath = "D: \ Omat tiedostot \ VBA \ Kohdekansio \ Myynti huhtikuu 2019. xlsx "FileCopy SourcePath, DestinationPath End Sub 

Anna minun selittää koodi yksityiskohtaisesti sinulle.

Ensin olen ilmoittanut kaksi muuttujaa.

 Himmennä lähdepolku merkkijonona Hämärä kohdepolku merkkijonona 

Sitten ensimmäiselle muuttujalle olen määrittänyt kansion polun, josta sen on kopioitava tiedosto ja tiedostonimi sekä sen tiedostotunniste.

SourcePath = "D: \ Omat tiedostot \ VBA \ Huhtikuun tiedostot \ Myynti huhtikuu 2019.xlsx"

Toiselle muuttujalle vastaavasti olen määrittänyt kohdekansiopolun tiedostonimellä ja Excel-laajennuksella.

DestinationPath = "D: \ Omat tiedostot \ VBA \ Kohdekansio \ Myynti huhtikuu 2019.xlsx"

Sitten olen toimittanut kaavalle FileCopy nämä muuttujat pitkien kansiopolun merkkijonojen sijaan.

FileCopy SourcePath, DestinationPath

Tällä tavoin voimme käyttää muuttujia polkujen tallentamiseen ja käyttämiseen tehokkaasti.

Esimerkki # 3 - Virhe tiedostokopiointitoiminnossa

Joskus tiedostokopiointitoiminto havaitsee virheen ”Lupa evätty”.

Syy miksi saamme tämän virheen, koska kun kopiointitiedosto avataan ja jos yrität kopioida yllä oleva virhe tulee, sulje tiedosto aina ja suorita koodi.