Come copiare o spostare file da una cartella a un'altra in base a un elenco in Excel?
Se hai un elenco di nomi di file in una colonna di un foglio di lavoro e i file si trovano in una cartella sul tuo computer, potresti aver bisogno di spostare o copiare questi file, i cui nomi sono elencati nel foglio di lavoro, dalla loro cartella originale a un'altra, come mostrato nello screenshot seguente. Come potresti completare questa operazione il più rapidamente possibile in Excel?
Copia o sposta file da una cartella a un'altra in base a un elenco in Excel con codice VBA
Copia o sposta file da una cartella a un'altra in base a un elenco in Excel con codice VBA
Per spostare i file da una cartella a un'altra in base a un elenco di nomi di file, il seguente codice VBA potrebbe esserti utile, procedi come segue:
1. Tieni premuti i tasti Alt + F11 in Excel, e si aprirà la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo, e incolla il seguente codice VBA nella finestra del Modulo.
Codice VBA: Sposta file da una cartella a un'altra in base a un elenco in Excel
Sub movefiles()
'Updateby Extendoffice
Dim xRg As Range, xCell As Range
Dim xSFileDlg As FileDialog, xDFileDlg As FileDialog
Dim xSPathStr As Variant, xDPathStr As Variant
Dim xVal As String
On Error Resume Next
Set xRg = Application.InputBox("Please select the file names:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xSFileDlg.Title = " Please select the original folder:"
If xSFileDlg.Show <> -1 Then Exit Sub
xSPathStr = xSFileDlg.SelectedItems.Item(1) & "\"
Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = " Please select the destination folder:"
If xDFileDlg.Show <> -1 Then Exit Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
For Each xCell In xRg
xVal = xCell.Value
If TypeName(xVal) = "String" And xVal <> "" Then
FileCopy xSPathStr & xVal, xDPathStr & xVal
Kill xSPathStr & xVal
End If
Next
End Sub
3. Successivamente, premi il tasto F5 per eseguire questo codice, e apparirà una finestra di dialogo che ti chiederà di selezionare le celle contenenti i nomi dei file, vedi screenshot:
4. Quindi clicca sul pulsante OK, e nella finestra visualizzata, seleziona la cartella che contiene i file che desideri spostare, vedi screenshot:
5. Dopodiché, clicca su OK, continua selezionando la cartella di destinazione dove vuoi posizionare i file in un'altra finestra visualizzata, vedi screenshot:
6. Infine, clicca su OK per chiudere la finestra, e ora i file saranno stati spostati in un'altra cartella specificata in base ai nomi dei file nell'elenco del foglio di lavoro, vedi screenshot:
Nota: Se vuoi solo copiare i file in un'altra cartella mantenendo i file originali, applica il seguente codice VBA:
Codice VBA: Copia file da una cartella a un'altra in base a un elenco in Excel
Sub copyfiles()
'Updateby Extendoffice
Dim xRg As Range, xCell As Range
Dim xSFileDlg As FileDialog, xDFileDlg As FileDialog
Dim xSPathStr As Variant, xDPathStr As Variant
Dim xVal As String
On Error Resume Next
Set xRg = Application.InputBox("Please select the file names:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xSFileDlg.Title = "Please select the original folder:"
If xSFileDlg.Show <> -1 Then Exit Sub
xSPathStr = xSFileDlg.SelectedItems.Item(1) & "\"
Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = "Please select the destination folder:"
If xDFileDlg.Show <> -1 Then Exit Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
For Each xCell In xRg
xVal = xCell.Value
If TypeName(xVal) = "String" And xVal <> "" Then
FileCopy xSPathStr & xVal, xDPathStr & xVal
End If
Next
End Sub

Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!