Vba: cara membuat daftar file dalam folder
Anda dapat menggunakan metode berikut di VBA untuk membuat daftar file dalam folder:
Metode 1: Daftarkan semua file dalam folder
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
Metode 2: Cantumkan hanya file .xlsx di folder
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan folder yang memiliki jalur file berikut:
- C:\Users\bob\Documents\current_data
Folder tersebut berisi dua file .xlsx dan tiga file .csv :
Contoh 1: Daftar semua file dalam folder
Kita dapat membuat makro berikut untuk mencantumkan semua file di folder:
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
Cells(i + 1, 1) = objFile.Name
i = i + 1
Next objFile
End Sub
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Kita dapat melihat bahwa nama semua file dalam folder (terlepas dari ekstensinya) sekarang tercantum di kolom A lembar Excel kita.
Contoh 2: Cantumkan hanya file .xlsx di folder
Kita dapat membuat makro berikut untuk mencantumkan hanya file yang memiliki ekstensi .xlsx di folder:
SubListFiles ()
Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")
For Each objFile In oFolder.Files
If Right(objFile.Name, 4) = "xlsx" Then
Cells(i + 1, 1) = objFile.Name
i = i + 1
End If
Next objFile
End Sub
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Kita dapat melihat bahwa hanya nama file dengan ekstensi .xlsx di folder tersebut yang sekarang tercantum di kolom A lembar Excel kita.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:
Cara Membuat Folder Menggunakan VBA
Cara menghapus folder menggunakan VBA
Cara mengganti nama file menggunakan VBA
Cara memeriksa apakah file ada menggunakan VBA