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 หรือไม่

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *