Note: The other languages of the website are Google-translated. Back to English

Bagaimana cara menyalin atau memindahkan file dari satu folder ke folder lain berdasarkan daftar di Excel? 

Jika Anda memiliki daftar nama file di kolom di lembar kerja, dan file tersebut berada di folder di komputer Anda. Tapi, sekarang, Anda perlu memindahkan atau menyalin file-file ini yang namanya tercantum ke dalam lembar kerja dari folder aslinya ke folder lain seperti gambar berikut yang ditampilkan. Bagaimana Anda bisa menyelesaikan tugas ini secepat mungkin di Excel?

Salin atau pindahkan file dari satu folder ke folder lain berdasarkan daftar di Excel dengan kode VBA


Salin atau pindahkan file dari satu folder ke folder lain berdasarkan daftar di Excel dengan kode VBA

Untuk memindahkan file dari satu folder ke folder lain berdasarkan daftar nama file, kode VBA berikut mungkin membantu Anda, lakukan seperti ini:

1. Tahan Alt + F11 kunci di Excel, dan itu membuka file Microsoft Visual Basic untuk Aplikasi jendela.

2. Klik Menyisipkan > Modul, dan tempel kode VBA berikut di Module Window.

Kode VBA: Pindahkan file dari satu folder ke folder lain berdasarkan daftar di 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. Lalu tekan F5 kunci untuk menjalankan kode ini, dan kotak prompt akan muncul untuk mengingatkan Anda memilih sel yang berisi nama file, lihat tangkapan layar:

4. Lalu klik OK tombol, dan di jendela yang muncul, pilih folder yang berisi file yang ingin Anda pindahkan, lihat tangkapan layar:

5. Dan kemudian klik OK, lanjutkan memilih folder tujuan tempat Anda ingin mencari file di jendela lain yang muncul, lihat tangkapan layar:

6. Akhirnya, klik OK untuk menutup jendela, dan sekarang, file telah dipindahkan ke folder lain yang Anda tentukan berdasarkan nama file di daftar lembar kerja, lihat tangkapan layar:

Note: Jika Anda hanya ingin menyalin file ke folder lain, tetapi menyimpan file asli, terapkan kode VBA di bawah ini:

Kode VBA: Salin file dari satu folder ke folder lain berdasarkan daftar di 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

 


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2019 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Tingkatkan produktivitas Anda hingga 50%, dan kurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah

 

Urutkan komentar berdasarkan
komentar (69)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Ini adalah makro yang bagus. Sangat membantu bagi saya. tapi saya perlu beberapa pembaruan makro. Ini digunakan untuk menyalin file dari satu folder ke folder lain. kita perlu menyalin file dari folder dan subfolder ke folder lain.
Komentar ini diminimalkan oleh moderator di situs
Hai, Di folder sumber, saya ingin mengaturnya sebagai konstanta dari sel, misalnya jalur yang dimasukkan dalam sel tertentu, seperti A1, harus diperlakukan sebagai folder sumber. Bagaimana cara melakukannya?
Komentar ini diminimalkan oleh moderator di situs
Era exatamente isso que eu precisava!!!

Muito Obrigado!!!!
Komentar ini diminimalkan oleh moderator di situs
Terima kasih!!!!
Komentar ini diminimalkan oleh moderator di situs
Anda tidak tahu apa-apa tentang saya ajudou dengan skrip ini... Muito bom!!! Wajib!!!
Komentar ini diminimalkan oleh moderator di situs
Hi Guys,

Bagaimana saya perlu mengubah '' If TypeName(xVal) = "String" Dan xVal <> "" Kemudian '' untuk memindahkan file berdasarkan sebagian nama file.


Terima kasih sebelumnya,
Salam hangat, P
Komentar ini diminimalkan oleh moderator di situs
Apakah Anda pernah mengetahui BAGAIMANA menggunakan NAMA FILE PARSIAL? saya juga butuh itu...
Dengan kata lain, jika nama file pada daftar lembar Excel adalah: OW4234TR_J19031.txt (Saya ingin hanya melihat 5 karakter terakhir "19031" yang merupakan Tanggal Julian dan memindahkan berbagai file... Julian Tanggal 19031 sampai 19075..
Komentar ini diminimalkan oleh moderator di situs
Saya juga akan memerlukan modifikasi nama file vba parsial. Apakah Anda pernah mendapat tanggapan?
Komentar ini diminimalkan oleh moderator di situs
Saya tertarik pada solusi yang persis sama! Adakah yang mendapatkan jawabannya? Saya memiliki daftar P/N di kolom, dan saya ingin sepotong kode yang terlihat di folder induk yang memiliki beberapa subfolder setelah file dengan nama yang ditunjukkan oleh daftar, tetapi hanya sebagian, karena saya tidak tahu ekstensi file dan dalam banyak kasus untuk satu P/N dalam daftar, saya memiliki beberapa file yang dibedakan dengan adanya sufiks yang tidak selalu memiliki pola yang sama, seperti xxxx_1, xxxx_2, xxx (1 ), xxxx [1], xxxx- (a ), xxxx_ (b) ...., tetapi saya perlu menyalin di folder tujuan, semua contoh file yang berisi nama mereka P/N.Tolong bantu saya untuk tidak melakukan pekerjaan ini secara manual untuk 34078 file yang hari ini ditemukan di folder induk dan subfolder
Komentar ini diminimalkan oleh moderator di situs
Halo,
bagaimana cara membuat kode ini menyalin file dari subfolder?
Komentar ini diminimalkan oleh moderator di situs
Adakah tips tentang cara memodifikasi kode untuk menambahkan kartu lebar? Saya memiliki arsip ratusan file PDF yang 10 digit angka dan tingkat revisi (XXXXXXXXXX_REVA). Saya dapat mengekspor daftar nama file dengan sangat mudah dari sistem ERP kami, tetapi daftar tersebut tidak memiliki revisi dan ekstensi file. Apakah ada cara untuk menambahkan kartu liar ke dalam program untuk mengabaikan semuanya TETAPI angka 10 digit?
Komentar ini diminimalkan oleh moderator di situs
Saya tidak bisa membuat kedua versi berfungsi di Windows 10.


Argggg
Komentar ini diminimalkan oleh moderator di situs
en el codigo que copia como puedo colorear el nombre de la lista que no encuentre?
Komentar ini diminimalkan oleh moderator di situs
Bekerja dengan baik - terima kasih! Namun-->>>Dapatkah ini disesuaikan untuk menggunakan PARTIAL FILE NAME? Jika demikian, dapatkah Anda membantu menunjukkan caranya?
Dengan kata lain, jika nama file pada daftar nama file lembar Excel adalah: OW4234TR_J19031.txt (Saya ingin hanya melihat 5 karakter terakhir "19031" yang merupakan Tanggal Julian dan memindahkan berbagai file... ( apa pun dengan Tanggal Julian 19092 hingga 19120) ke dalam folder Maret.. Tugas menyeluruh yang paling utama adalah menemukan file apa pun yang memiliki tanggal Julian untuk bulan Maret dan meletakkannya di Folder Maret Fiskal "06-Mar" , April ke dalam folder April "07-Apr" dan seterusnya...sehingga rekonsiliasi fiskal berdasarkan bulan dapat dilakukan.. TIA untuk bantuan apa pun yang dapat ditawarkan siapa pun untuk mempercepat proses berburu dan memetik yang memakan waktu ini. =-)
Komentar ini diminimalkan oleh moderator di situs
hai apakah Anda tahu cara mencari juga di subfolder?
Komentar ini diminimalkan oleh moderator di situs
Adakah yang menemukan cara menyalin file yang terletak di beberapa subfolder dari direktori utama, dan menempelkannya ke direktori folder lain? Juga apakah metode transfer ini hanya berfungsi untuk folder di drive C? Saya mencoba menyalin file dari direktori kami yang menyertakan beberapa subfolder tempat beberapa file disimpan di Microsoft Sharepoint, ke folder di drive C saya.

Bantuan apa pun akan sangat dihargai!
Komentar ini diminimalkan oleh moderator di situs
Terima kasih banyak !
Komentar ini diminimalkan oleh moderator di situs
buenas noches, alguien sabe que tengo que modificar para que me mueva carpetas y no solo archivos?
Komentar ini diminimalkan oleh moderator di situs
Setiap pembaruan tentang cara mencari di folder dan subfolder
Komentar ini diminimalkan oleh moderator di situs
Hai, Nasr,
Untuk memindahkan file dari folder dan subfolder berdasarkan nilai sel, silakan terapkan kode VBA di bawah ini:
Silakan dicoba, semoga bisa membantu Anda!

Sub file bergerak()
'Perbarui oleh Extendoffice
Redupkan xRg Sebagai Rentang, xCell Sebagai Rentang
Redupkan xSFileDlg Sebagai FileDialog, xDFileDlg Sebagai FileDialog
Redupkan xSPathStr Sebagai Varian, xDPathStr Sebagai Varian
Redupkan xVal Sebagai String
Redupkan fso Sebagai Objek, folder1 Sebagai Objek
' Pada Kesalahan Lanjutkan Selanjutnya
Set xRg = Application.InputBox("Silakan pilih nama file:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
Jika xRg Bukan Apa-apa Kemudian Keluar Sub
Setel xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xSFileDlg.Title = " Silahkan pilih folder aslinya :"
Jika xSFileDlg.Show <> -1 Kemudian Keluar Sub
xSPathStr = xSFileDlg.SelectedItems.Item(1) & "\"
Setel xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = " Silahkan pilih folder tujuan :"
Jika xDFileDlg.Show <> -1 Kemudian Keluar Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
Panggil sMoveFiles(xRg, xSPathStr, xDPathStr)
End Sub

Sub sMoveFiles(xRg Sebagai Rentang, xSPathStr Sebagai Varian, xDPathStr Sebagai Varian)
Redupkan xCell Sebagai Rentang
Redupkan xVal Sebagai String
Redupkan xFolder Sebagai Objek
Redupkan fso Sebagai Obyek
Redupkan xF Sebagai Objek
Redupkan xStr Sebagai String
Redupkan xFS Sebagai Objek
Redupkan xI Sebagai Integer
On Error Resume Next
Jika Dir(xDPathStr, vbDirectory) = "" Maka
MkDir (xDPathStr)
End If
Untuk xI = 1 Ke xRg.Hitung
Tetapkan xCell = xRg.Item(xI)
xVal = xCell.Nilai
Jika TypeName(xVal) = "String" Dan Tidak (xVal = "") Maka
Pada Kesalahan GoTo E1
Jika Dir(xSPathStr & xVal, 16) <> Kosong Maka
FileCopy xSPathStr & xVal, xDPathStr & xVal
Bunuh xSPathStr & xVal
End If
End If
E1:
xI berikutnya
On Error Resume Next
Setel fso = CreateObject ("Scripting.FileSystemObject")
Setel xFS = fso.GetFolder(xSPathStr)
Untuk Setiap xF Dalam xFS.SubFolder
xStr = xDPathStr & "\" & xF.Name ' Ganti(xF.ShortPath, xSPathStr, xDPathStr)
Panggil sMoveFiles(xRg, xF.ShortPath & "\", xStr & "\")
If (CreateObject("scripting.FileSystemObject").GetFolder(xStr).Files.Count = 0) _
Dan (CreateObject("scripting.FileSystemObject").GetFolder(xStr).SubFolders.Count = 0) Kemudian
RMDir xStr
End If
Next
End Sub
Komentar ini diminimalkan oleh moderator di situs
Itu sempurna terima kasih
tapi bagaimana jika saya hanya ingin menyalin file tidak memindahkannya dari subfolder saja tanpa perlu membuat subfolder di folder tujuan
ie
folder sumber X:\\induk
di dalam induk adalah subfolder test1(file A), test2(file B) dan test3(file C)
maka folder tujuan adalah "Y:\\destination" memiliki semua 3 file A, B, C tanpa subfolder

Terima kasih banyak
Komentar ini diminimalkan oleh moderator di situs
Hai Nasr, apakah Anda menemukan cara untuk melakukan ini? Saya melihat kebutuhan serupa saat ini.

Menyalin pilihan file dari berbagai subfolder ke satu folder
Komentar ini diminimalkan oleh moderator di situs
Hai Mike
Saya agak melakukannya TAPI secara tidak langsung, jadi yang saya lakukan adalah memodifikasi kode untuk menyalin file tidak memindahkannya dengan subfolder
kemudian dengan file CMD pindahkan file dari subfolder ke folder utama lalu hapus subfolder yang kosong
ini yang saya lakukan

Sub Copyfile()
'Perbarui oleh Extendoffice
Redupkan xRg Sebagai Rentang, xCell Sebagai Rentang
Redupkan xSFileDlg Sebagai FileDialog, xDFileDlg Sebagai FileDialog
Redupkan xSPathStr Sebagai Varian, xDPathStr Sebagai Varian
Redupkan xVal Sebagai String
Redupkan fso Sebagai Objek, folder1 Sebagai Objek
' Pada Kesalahan Lanjutkan Selanjutnya
Set xRg = Application.InputBox("Silakan pilih nama file:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
Jika xRg Bukan Apa-apa Kemudian Keluar Sub
Setel xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xSFileDlg.Title = " Silahkan pilih folder aslinya :"
Jika xSFileDlg.Show <> -1 Kemudian Keluar Sub
xSPathStr = xSFileDlg.SelectedItems.Item(1) & "\"
Setel xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = " Silahkan pilih folder tujuan :"
Jika xDFileDlg.Show <> -1 Kemudian Keluar Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
Panggil sCopyFiles(xRg, xSPathStr, xDPathStr)
End Sub

Sub sCopyFiles(xRg Sebagai Rentang, xSPathStr Sebagai Varian, xDPathStr Sebagai Varian)
Redupkan xCell Sebagai Rentang
Redupkan xVal Sebagai String
Redupkan xFolder Sebagai Objek
Redupkan fso Sebagai Obyek
Redupkan xF Sebagai Objek
Redupkan xStr Sebagai String
Redupkan xFS Sebagai Objek
Redupkan xI Sebagai Integer
On Error Resume Next
Jika Dir(xDPathStr, vbDirectory) = "" Maka
MkDir (xDPathStr)
End If
Untuk xI = 1 Ke xRg.Hitung
Tetapkan xCell = xRg.Item(xI)
xVal = xCell.Nilai
Jika TypeName(xVal) = "String" Dan Tidak (xVal = "") Maka
Pada Kesalahan GoTo E1
Jika Dir(xSPathStr & xVal, 16) <> Kosong Maka
FileCopy xSPathStr & xVal, xDPathStr & xVal
End If
End If
E1:
xI berikutnya
On Error Resume Next
Setel fso = CreateObject ("Scripting.FileSystemObject")
Setel xFS = fso.GetFolder(xSPathStr)
Untuk Setiap xF Dalam xFS.SubFolder
xStr = xDPathStr & "\" & xF.Name ' Ganti(xF.ShortPath, xSPathStr, xDPathStr)
Panggil sCopyFiles(xRg, xF.ShortPath & "\", xStr & "\")
If (CreateObject("scripting.FileSystemObject").GetFolder(xStr).Files.Count = 0) _
Dan (CreateObject("scripting.FileSystemObject").GetFolder(xStr).SubFolders.Count = 0) Kemudian
RMDir xStr
End If
Next
End Sub



lalu salin baris berikut ke notepad baru lalu simpan sebagai cmd sebut saja apa pun

untuk /r %%a IN (*.*) lakukan (
pindah /y "%%a" "%cd%"
)
untuk /f "delims=" %%d in ('dir /s /b /ad ^| sort /r') lakukan rd "%%d"



pastikan untuk menyalin kode seperti 4 baris
semoga membantu
Komentar ini diminimalkan oleh moderator di situs
pastikan untuk meletakkan file cmd di folder yang sama dengan tempat Anda menyalin file dan subfolder untuk kemudian klik dua kali
Komentar ini diminimalkan oleh moderator di situs
Anda dapat mencapai hasil yang sama hanya dengan menggunakan VBA jika Anda menambahkan ' sebelum & "\" & xF.Name di baris di bawah ini.
Ini masih menyalin dari subfolder tetapi menyalin ke folder tingkat tunggal.

xStr = xDPathStr & "\" & xF.Name ' Ganti(xF.ShortPath, xSPathStr, xDPathStr)
menjadi
xStr = xDPathStr '& "\" & xF.Name ' Ganti(xF.ShortPath, xSPathStr, xDPathStr)
Komentar ini diminimalkan oleh moderator di situs
Hai skyyang, saya ingin menyalin atau memindahkan file (.jpg, .png) format apa pun dari folder & sub-foldernya. Skrip di atas menyalin seluruh folder yang berisi file yang cocok
Terima kasih & Salam,
Komentar ini diminimalkan oleh moderator di situs
HI, saya bukan ahli dalam VBA tetapi membutuhkan Modul Anda dan saya melakukan seperti yang Anda instruksikan tetapi tidak ada yang disalin dari folder sumber ke folder baru. dan tidak ada kesalahan yang ditampilkan
Komentar ini diminimalkan oleh moderator di situs
Apa yang terjadi jika file tidak ada di folder asal?
kode rusak

Kode harus memiliki garis untuk melompat ke referensi lain jika tidak ada
Komentar ini diminimalkan oleh moderator di situs
Jika referensi tidak ada, kode pecah
baris mana yang harus saya gunakan untuk melakukan lompatan melalui referensi berikutnya tanpa henti
Komentar ini diminimalkan oleh moderator di situs
Bagaimana ini bisa disesuaikan untuk menempel ke daftar beberapa jalur file alih-alih satu jalur pada satu waktu?
Komentar ini diminimalkan oleh moderator di situs
Halo, sabin,
Apakah Anda ingin menyalin dan menempelkan file yang berasal dari beberapa folder asli, bukan hanya satu folder?
Komentar ini diminimalkan oleh moderator di situs
ya silahkan
Belum ada komentar yang diposting di sini
Muat Lebih
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan