A VBA lehetővé teszi egy fájl másolását a FileSystemObject. Ebben az oktatóanyagban megtudhatja, hogyan másolhat és nevezhet át egy adott fájlt.
Ha meg szeretné tanulni a fájl átnevezését, kattintson erre a linkre: VBA Fájl átnevezése
Fájl / munkafüzet másolása
Megmutatjuk, hogyan kell másolni a meglévő fájlt Mintafájl 1.xlsx a mappában VBA mappa. Ebben a példában nem nevezzük át a fájlt, csak másoljuk és felülírjuk. A mappában jelenleg csak ez az egy fájl található:
Kép 1. Fájl a C mappában: \ VBA mappa
Itt a kód:
12345 | Dim oFSO mint objektumSet oFSO = CreateObject ("Scripting.FileSystemObject")Hívja meg az oFSO.CopyFile fájlt ("C: \ VBA mappa \ mintafájl 1.xlsx", "C: \ VBA mappa \", igaz) |
Először létre kell hoznia az osztály objektumát Scripting.FileSystemObject:
1 | Set oFSO = CreateObject ("Scripting.FileSystemObject") |
Akkor használhatjuk a módszert Fájl másolás, fájl másolása:
1 | Hívja meg az oFSO.CopyFile fájlt ("C: \ VBA mappa \ mintafájl 1.xlsx", "C: \ VBA mappa \", igaz) |
A módszer első paramétere a forrás elérési útja, a második pedig a cél elérési útja. A harmadik paraméter az Átír. Mivel azonos forrás- és célútvonalaink vannak, be kell állítanunk Átír igaznak vagy hamisnak. Ebben a példában a True értéket adjuk meg, ami azt jelenti, hogy az eredeti fájl felül van írva.
Nézzük most, mi történik, ha ugyanazok a célállomások, de a Felülírás értékét állítsuk hamisra. Csak meg kell változtatnia a kód ezen sorát:
1 | Hívja meg az oFSO.CopyFile fájlt ("C: \ VBA mappa \ mintafájl 1.xlsx", "C: \ VBA mappa \", igaz) |
Ennek eredményeként hibaüzenetet kap, amint az a 2. képen látható:
2. kép. Hiba a fájl másolásakor
Fájl másolása és átnevezése
Egy másik lehetőség a fájl másolásakor az átnevezése. Hasonló a fájl másolásához, de most csak más célú útvonalat kell beállítania. Itt a kód:
12345 | Dim oFSO mint objektumSet oFSO = CreateObject ("Scripting.FileSystemObject")Hívja meg az oFSO.CopyFile fájlt ("C: \ VBA mappa \ mintafájl 1.xlsx", "C: \ VBA mappa \ mintafájl Copy.xlsx") |
Amint a kód utolsó sorából látható, másolni szeretnénk a fájlt Mintafájl 1.xlsx ugyanabban a mappában, és nevezze el Példa fájl Copy.xlsx:
1 | Hívja meg az oFSO.CopyFile fájlt ("C: \ VBA mappa \ mintafájl 1.xlsx", "C: \ VBA mappa \ mintafájl Copy.xlsx") |
Most két fájlunk van a VBA mappában. A kód eredménye a 3. képen látható:
3. kép. Másolja át és nevezze át a fájlt