فبا: كيفية سرد الملفات في مجلد
يمكنك استخدام الطرق التالية في 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