VBA leidžia nukopijuoti failą naudojant „FileSystemObject“. Šioje pamokoje sužinosite, kaip nukopijuoti ir pervardyti konkretų failą.
Jei norite sužinoti, kaip pervardyti failą, galite spustelėti šią nuorodą: VBA pervardyti failą
Nukopijuokite failą / darbaknygę
Mes parodysime, kaip nukopijuoti esamą failą Pavyzdinis failas 1.xlsx aplanke VBA aplankas. Šiame pavyzdyje mes nepervadinsime failo, tiesiog nukopijuosime ir perrašysime. Šiuo metu aplanke yra tik vienas failas:
Vaizdas 1. Failas aplanke C: \ VBA Folder
Čia yra kodas:
12345 | Dim oFSO kaip objektasNustatykite oFSO = CreateObject ("Scripting.FileSystemObject")Skambinkite oFSO.CopyFile ("C: \ VBA aplankas \ Pavyzdinis failas 1.xlsx", "C: \ VBA aplankas \", tiesa) |
Pirmiausia turite sukurti klasės objektą Scripting.FileSystemObject:
1 | Nustatykite oFSO = CreateObject ("Scripting.FileSystemObject") |
Tada galime naudoti metodą CopyFile:
1 | Skambinkite oFSO.CopyFile ("C: \ VBA aplankas \ Pavyzdinis failas 1.xlsx", "C: \ VBA aplankas \", tiesa) |
Pirmasis metodo parametras yra šaltinio kelias, o antrasis - paskirties kelias. Trečias parametras yra Perrašyti. Kadangi turime tuos pačius šaltinio ir paskirties kelius, turime nustatyti Perrašyti į teisingą ar klaidingą. Šiame pavyzdyje mes įdėjome „True“, o tai reiškia, kad originalus failas yra perrašytas.
Dabar pažiūrėkime, kas atsitiks, jei turime tas pačias paskirties vietas, tačiau nustatykite „Overwrite“ į „False“. Jums tereikia pakeisti šią kodo eilutę:
1 | Skambinkite oFSO.CopyFile ("C: \ VBA aplankas \ Pavyzdinis failas 1.xlsx", "C: \ VBA aplankas \", tiesa) |
Dėl to gausite klaidą, kaip matote 2 paveikslėlyje:
Vaizdas 2. Klaida kopijuojant failą
Nukopijuokite ir pervardykite failą
Kitas galimas variantas kopijuojant failą yra jį pervardyti. Tai panašu į failo kopijavimą, tačiau dabar jums tereikia nustatyti paskirties kelią kitu pavadinimu. Čia yra kodas:
12345 | Dim oFSO kaip objektasNustatykite oFSO = CreateObject ("Scripting.FileSystemObject")Skambinkite oFSO.CopyFile ("C: \ VBA aplankas \ Pavyzdinis failas 1.xlsx", "C: \ VBA aplankas \ Pavyzdinis failas Copy.xlsx") |
Kaip matote iš paskutinės kodo eilutės, norime nukopijuoti failą Pavyzdinis failas 1.xlsx tame pačiame aplanke ir pavadinkite jį Failo pavyzdys Copy.xlsx:
1 | Skambinkite oFSO.CopyFile ("C: \ VBA aplankas \ Pavyzdinis failas 1.xlsx", "C: \ VBA aplankas \ Pavyzdinis failas Copy.xlsx") |
Dabar VBA aplanke turime du failus. Kodo rezultatas yra 3 paveikslėlyje:
Vaizdas 3. Nukopijuokite ir pervardykite failą