VBA vam omogućuje kopiranje datoteke pomoću FileSystemObject. U ovom ćete vodiču naučiti kako kopirati i preimenovati određenu datoteku.
Ako želite naučiti kako preimenovati datoteku, možete kliknuti na ovu vezu: VBA Preimenuj datoteku
Kopirajte datoteku / radnu knjigu
Pokazat ćemo kako kopirati postojeću datoteku Primjer datoteke 1.xlsx u mapi VBA mapa. U ovom primjeru nećemo preimenovati datoteku, samo je kopirajte i prepišite. Mapa trenutno ima samo jednu datoteku:
Slika 1. Datoteka u mapi C: \ VBA mapa
Evo koda:
12345 | Dim oFSO As ObjectPostavi oFSO = CreateObject ("Scripting.FileSystemObject")Pozovite oFSO.CopyFile ("C: \ VBA mapa \ Primjer datoteke 1.xlsx", "C: \ VBA mapa \", True) |
Prvo morate stvoriti objekt klase Scripting.FileSystemObject:
1 | Postavi oFSO = CreateObject ("Scripting.FileSystemObject") |
Tada možemo koristiti metodu Kopiraj datoteku:
1 | Pozovite oFSO.CopyFile ("C: \ VBA mapa \ Primjer datoteke 1.xlsx", "C: \ VBA mapa \", True) |
Prvi parametar metode je izvorni put, a drugi odredišni put. Treći parametar je Prepiši. Kako imamo iste izvorne i odredišne putove, moramo postaviti Prepiši na Tačno ili Netačno. U ovom primjeru stavljamo True, što znači da je izvorna datoteka prebrisana.
Pogledajmo sada što se događa ako imamo ista odredišta, ali postavimo Overwrite na False. Samo trebate promijeniti ovaj redak koda:
1 | Pozovite oFSO.CopyFile ("C: \ VBA mapa \ Primjer datoteke 1.xlsx", "C: \ VBA mapa \", True) |
Kao rezultat toga, dobit ćete pogrešku kao što vidite na slici 2:
Slika 2. Pogreška pri kopiranju datoteke
Kopirajte i preimenujte datoteku
Druga moguća opcija pri kopiranju datoteke je njezino preimenovanje. Slično je kopiranju datoteke, ali sada samo trebate postaviti odredišnu putanju s drugim imenom. Evo koda:
12345 | Dim oFSO As ObjectPostavi oFSO = CreateObject ("Scripting.FileSystemObject")Pozovite oFSO.CopyFile ("C: \ VBA Mapa \ Primjer datoteke 1.xlsx", "C: \ VBA Mapa \ Primjer datoteke Copy.xlsx") |
Kao što možete vidjeti iz posljednjeg retka koda, želimo kopirati datoteku Primjer datoteke 1.xlsx u istoj mapi i dajte joj ime Primjer datoteke Copy.xlsx:
1 | Pozovite oFSO.CopyFile ("C: \ VBA Mapa \ Primjer datoteke 1.xlsx", "C: \ VBA Mapa \ Primjer datoteke Copy.xlsx") |
Sada imamo dvije datoteke u VBA mapi. Rezultat koda je na slici 3:
Slika 3. Kopirajte i preimenujte datoteku