فبا: كيفية سرد الملفات في مجلد


يمكنك استخدام الطرق التالية في VBA لسرد الملفات في مجلد:

الطريقة الأولى: سرد كافة الملفات الموجودة في المجلد

 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

الطريقة الثانية: سرد ملفات .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

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *