VBA vám umožňuje skopírovať súbor pomocou súboru FileSystemObject. V tomto návode sa naučíte kopírovať a premenovať konkrétny súbor.
Ak sa chcete dozvedieť, ako premenovať súbor, môžete kliknúť na tento odkaz: Premenovať súbor VBA
Skopírujte súbor / zošit
Ukážeme si, ako skopírovať existujúci súbor Ukážkový súbor 1.xlsx v priečinku Priečinok VBA. V tomto prípade súbor nepremenujeme, iba ho skopírujeme a prepíšeme. Priečinok má v súčasnosti iba tento jeden súbor:
Obrázok 1. Súbor v priečinku C: \ VBA priečinok
Tu je kód:
12345 | Dim oFSO ako objektNastaviť oFSO = CreateObject ("Scripting.FileSystemObject")Zavolajte oFSO.CopyFile ("C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx", "C: \ Priečinok VBA \", True) |
Najprv musíte vytvoriť objekt triedy Scripting.FileSystemObject:
1 | Nastaviť oFSO = CreateObject ("Scripting.FileSystemObject") |
Potom môžeme použiť metódu CopyFile:
1 | Zavolajte oFSO.CopyFile ("C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx", "C: \ Priečinok VBA \", True) |
Prvým parametrom metódy je zdrojová cesta a druhým cieľová cesta. Tretí parameter je Prepísať. Keďže máme rovnaké zdrojové a cieľové cesty, musíme nastaviť Prepísať na Pravda alebo lož. V tomto prípade uvádzame True, čo znamená, že pôvodný súbor je prepísaný.
Pozrime sa teraz, čo sa stane, ak máme rovnaké ciele, ale nastavíme Prepísať na Nepravda. Stačí zmeniť tento riadok kódu:
1 | Zavolajte oFSO.CopyFile ("C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx", "C: \ Priečinok VBA \", True) |
V dôsledku toho sa zobrazí chyba, ako môžete vidieť na obrázku 2:
Obrázok 2. Chyba pri kopírovaní súboru
Skopírujte a premenujte súbor
Ďalšou možnou možnosťou pri kopírovaní súboru je jeho premenovanie. Je to podobné ako pri kopírovaní súboru, ale teraz stačí nastaviť cieľovú cestu s iným názvom. Tu je kód:
12345 | Dim oFSO ako objektNastaviť oFSO = CreateObject ("Scripting.FileSystemObject")Zavolajte oFSO.CopyFile ("C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx", "C: \ VBA priečinok \ Ukážkový súbor Copy.xlsx") |
Ako vidíte z posledného riadka kódu, chceme skopírovať súbor Ukážkový súbor 1.xlsx v rovnakom priečinku a pomenujte ho Ukážkový súbor Copy.xlsx:
1 | Zavolajte oFSO.CopyFile ("C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx", "C: \ Priečinok VBA \ Ukážkový súbor Copy.xlsx") |
Teraz máme v priečinku VBA dva súbory. Výsledok kódu je na obrázku 3:
Obrázok 3. Skopírujte a premenujte súbor