VBA vă permite să copiați un fișier, utilizând FileSystemObject. În acest tutorial, veți afla cum să copiați și să redenumiți un anumit fișier.
Dacă doriți să aflați cum să redenumiți un fișier, puteți face clic pe acest link: VBA Rename File
Copiați un fișier / registru de lucru
Vom arăta cum să copiați fișierul existent Fișier exemplu 1.xlsx în dosar Dosar VBA. În acest exemplu, nu vom redenumi fișierul, ci doar îl copiați și îl suprascrieți. Dosarul are în prezent doar acest fișier:
Imagine 1. Fișier în folderul C: \ VBA Folder
Iată codul:
12345 | Dim oFSO Ca obiectSetați oFSO = CreateObject ("Scripting.FileSystemObject")Apelați oFSO.CopyFile („C: \ VBA Folder \ Sample file 1.xlsx”, „C: \ VBA Folder \”, True) |
Mai întâi trebuie să creați obiectul clasei Scripting.FileSystemObject:
1 | Setați oFSO = CreateObject ("Scripting.FileSystemObject") |
Apoi putem folosi metoda Copiaza fisier:
1 | Apelați oFSO.CopyFile („C: \ VBA Folder \ Sample file 1.xlsx”, „C: \ VBA Folder \”, True) |
Primul parametru al metodei este calea sursă și al doilea este calea destinație. Al treilea parametru este Suprascrie. Deoarece avem aceleași căi sursă și destinație, trebuie să setăm Suprascrie la Adevărat sau Fals. În acest exemplu, punem True, ceea ce înseamnă că fișierul original este suprascris.
Să vedem acum ce se întâmplă dacă avem aceleași destinații, dar setăm Suprascriere la False. Trebuie doar să schimbați această linie a codului:
1 | Apelați oFSO.CopyFile („C: \ VBA Folder \ Sample file 1.xlsx”, „C: \ VBA Folder \”, True) |
Ca urmare, veți primi o eroare așa cum puteți vedea în imaginea 2:
Imagine 2. Eroare la copierea fișierului
Copiați și redenumiți un fișier
O altă opțiune posibilă atunci când copiați un fișier este redenumirea acestuia. Este similar cu copierea unui fișier, dar acum trebuie doar să setați calea de destinație cu un nume diferit. Iată codul:
12345 | Dim oFSO Ca obiectSetați oFSO = CreateObject ("Scripting.FileSystemObject")Apelați oFSO.CopyFile („C: \ VBA Folder \ Sample file 1.xlsx”, „C: \ VBA Folder \ Sample file Copy.xlsx”) |
După cum puteți vedea din ultima linie a codului, dorim să copiem fișierul Fișier exemplu 1.xlsx în același folder și denumiți-l Fișier exemplu Copy.xlsx:
1 | Apelați oFSO.CopyFile („C: \ VBA Folder \ Sample file 1.xlsx”, „C: \ VBA Folder \ Sample file Copy.xlsx”) |
Acum avem două fișiere în folderul VBA. Rezultatul codului este în imaginea 3:
Imagine 3. Copiați și redenumiți fișierul