VBA -kopieringsfil / arbetsbok

Med VBA kan du kopiera en fil med FileSystemObject. I denna handledning lär du dig hur du kopierar och byter namn på en specifik fil.

Om du vill lära dig hur du byter namn på en fil kan du klicka på den här länken: VBA Rename File

Kopiera en fil / arbetsbok

Vi visar hur du kopierar den befintliga filen Exempelfil 1.xlsx i mappen VBA -mapp. I det här exemplet kommer vi inte att byta namn på filen, bara kopiera och skriva över den. Mappen har för närvarande bara den här filen:

Bild 1. Fil i mapp C: \ VBA -mapp

Här är koden:

12345 Dim oFSO som objektAnge oFSO = CreateObject ("Scripting.FileSystemObject")Ring oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True)

Du måste först skapa objektet för klassen Scripting.FileSystemObject:

1 Ange oFSO = CreateObject ("Scripting.FileSystemObject")

Sedan kan vi använda metoden Kopiera fil:

1 Ring oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True)

Metodens första parameter är källvägen och den andra är destinationsvägen. Den tredje parametern är Skriva över. Eftersom vi har samma käll- och destinationsvägar måste vi ställa in Skriva över till Sant eller falskt. I det här exemplet lägger vi True, vilket betyder att originalfilen skrivs över.

Låt oss nu se vad som händer om vi har samma destinationer, men ställ in Skriv över till Falskt. Du behöver bara ändra den här raden i koden:

1 Ring oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \", True)

Som ett resultat får du ett fel som du kan se i bild 2:

Bild 2. Fel vid kopiering av filen

Kopiera och byt namn på en fil

Ett annat möjligt alternativ när du kopierar en fil är att byta namn på den. Det liknar att kopiera en fil, men nu behöver du bara ställa in målväg med ett annat namn. Här är koden:

12345 Dim oFSO som objektAnge oFSO = CreateObject ("Scripting.FileSystemObject")Ring oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \ Sample file Copy.xlsx")

Som du kan se från den sista raden i koden vill vi kopiera filen Exempelfil 1.xlsx i samma mapp och namnge den Exempelfil Copy.xlsx:

1 Ring oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \ Sample file Copy.xlsx")

Nu har vi två filer i VBA -mappen. Resultatet av koden finns i bild 3:

Bild 3. Kopiera och byt namn på filen

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave