Vba: วิธีแสดงรายการไฟล์ในโฟลเดอร์
คุณสามารถใช้วิธีการต่อไปนี้ใน VBA เพื่อแสดงรายการไฟล์ในโฟลเดอร์:
วิธีที่ 1: แสดงรายการไฟล์ทั้งหมดในโฟลเดอร์
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
วิธีที่ 2: แสดงรายการเฉพาะไฟล์ .xlsx ในโฟลเดอร์
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
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับโฟลเดอร์ที่มีเส้นทางของไฟล์ดังต่อไปนี้:
- C:\Users\bob\Documents\current_data
โฟลเดอร์นี้ประกอบด้วยไฟล์ .xlsx สองไฟล์ และไฟล์ .csv สามไฟล์:
ตัวอย่างที่ 1: แสดงรายการไฟล์ทั้งหมดในโฟลเดอร์
เราสามารถสร้างมาโครต่อไปนี้เพื่อแสดงรายการไฟล์ทั้งหมดในโฟลเดอร์:
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
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
เราจะเห็นได้ว่าตอนนี้ชื่อของไฟล์ทั้งหมดในโฟลเดอร์ (โดยไม่คำนึงถึงนามสกุล) จะแสดงอยู่ในคอลัมน์ A ของแผ่นงาน Excel ของเรา
ตัวอย่างที่ 2: แสดงรายการเฉพาะไฟล์ .xlsx ในโฟลเดอร์
เราสามารถสร้างมาโครต่อไปนี้เพื่อแสดงรายการเฉพาะไฟล์ที่มีนามสกุล .xlsx ในโฟลเดอร์:
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
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
เราจะเห็นว่าตอนนี้ชื่อเฉพาะไฟล์ที่มีนามสกุล .xlsx ในโฟลเดอร์นั้นแสดงอยู่ในคอลัมน์ A ของแผ่นงาน Excel ของเรา
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
วิธีสร้างโฟลเดอร์โดยใช้ VBA
วิธีลบโฟลเดอร์โดยใช้ VBA
วิธีเปลี่ยนชื่อไฟล์โดยใช้ VBA
วิธีตรวจสอบว่ามีไฟล์อยู่โดยใช้ VBA หรือไม่