Come copiare un file excel utilizzando vba?
È possibile utilizzare il codice VBA per copiare un file (cartella di lavoro) da una cartella a un’altra oppure è anche possibile copiare un file nella stessa cartella utilizzando un nome diverso.
In questo tutorial vedremo come scrivere codice in entrambe le direzioni. Qui è necessario utilizzare FileSystemObject che fornisce l’accesso a file e cartelle in Windows.
Copia un file Excel in una cartella separata
Sub myMacro() Dim myFile As Object Set myFile = CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True) End Sub
Per scrivere il codice sopra:
- Per prima cosa devi dichiarare una variabile.
- Successivamente, è necessario specificare FileSystemObject nella variabile appena definita.
- Successivamente, è necessario impostare la posizione di origine nel metodo “CopyFile”.
- Alla fine, imposta il percorso della cartella in cui desideri incollarlo.
Quando esegui questa macro , copia il “file di testo” della cartella di lavoro di Excel dalla cartella e lo incolla nella posizione specificata nel codice.
Copia un file e rinominalo
Quando provi a copiare e incollare un file nella stessa posizione, c’è una buona probabilità che VBA ti mostri un errore. In questa situazione, il modo migliore è rinominare il file durante la copia.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True)
Sopra è riportato il codice di linea che ho utilizzato nel metodo precedente. Ora devi apportare una modifica solo a questa riga. Per la posizione di destinazione, devi aggiungere il file che desideri utilizzare per il nuovo file.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\folder\test-file1.xlsx ", True)
Quando esegui questo codice, copia il file (text-file.xlsx) dalla cartella e lo copia nella stessa cartella con un nome diverso (test-file1.xlsx).
Dim myFile As Object Set myFile = _ CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", _ "C:\Users\admin\Desktop\folder\test-file1.xlsx", True) End Sub