كيفية تصفح جداول البيانات في 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

Add a Comment

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