كيفية تصفح جداول البيانات في vba (مع أمثلة)
يمكنك استخدام الطرق التالية للتنقل بين الأوراق في مصنف Excel باستخدام VBA:
الطريقة الأولى: تصفح كافة جداول البيانات
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
End Sub
يمر هذا الماكرو المحدد خلال كل ورقة في المصنف ويعين القيمة في الخلية A1 لكل ورقة لتكون 100.
الطريقة الثانية: تصفح كافة أوراق العمل، باستثناء أوراق محددة
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
يتكرر هذا الماكرو المحدد خلال كل ورقة في المصنف ويعين القيمة في الخلية A1 لكل ورقة لتكون 100، باستثناء الأوراق التي تسمى Sheet2 و Sheet3 .
توضح الأمثلة التالية كيفية استخدام كل من هذه الطرق عمليًا مع مصنف Excel الذي يحتوي على أربع أوراق فارغة:
مثال 1: تصفح كافة أوراق العمل
يمكننا استخدام الماكرو التالي لتعيين قيمة الخلية A1 في كل ورقة في المصنف الخاص بنا لتكون مساوية 100:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
عندما نقوم بتشغيل هذا الماكرو، ستكون قيمة الخلية A1 في كل ورقة من المصنف تساوي 100:
المثال 2: تصفح كافة أوراق العمل، باستثناء أوراق محددة
لنفترض أننا نريد مراجعة كل ورقة عمل وتعيين قيمة الخلية A1 في كل ورقة لتكون 100، باستثناء الأوراق التي تسمى Sheet2 و Sheet3 .
يمكننا إنشاء الماكرو التالي للقيام بذلك:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
عندما نقوم بتشغيل هذا الماكرو، سنرى أن الورقة 1 والورقة 4 لهما قيمة 100 في الخلية A1 .
ومع ذلك، لن يكون للورقة2 والورقة 3 أي قيمة في الخلية A1 نظرًا لأننا استخدمنا وظيفة الحالة لتجاهل هذه الأوراق:
لاحظ أنه في هذه الأمثلة، قمنا بمراجعة كل ورقة عمل وقمنا بتعيين قيمة الخلية مساوية لقيمة محددة، فقط من أجل البساطة.
ومع ذلك، يمكنك استخدام بناء جملة مشابه مع عبارة For Each لتنفيذ مهام أكثر تعقيدًا في كل ورقة إذا كنت ترغب في ذلك.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
فبا: كيفية حساب عدد الصفوف في النطاق
VBA: كيفية حساب الخلايا التي تحتوي على نص معين
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS