/ / Excel VBA Loop

Excel VBA Loop

دائرة مفردة | حلقة مزدوجة | حلقة ثلاثية | هل في حين حلقة

Looping هي واحدة من أقوى تقنيات البرمجة. ا عقدة في Excel VBA تمكنك من حلقة عبر مجموعة من الخلايا مع خطوط رموز قليلة فقط.

دائرة مفردة

يمكنك استخدام حلقة واحدة للتكرار خلال نطاق من الأبعاد أحادية البعد للخلايا.

ضع زر أمر في ورقة العمل الخاصة بك وقم بإضافة الأسطر التعليمات البرمجية التالية:

Dim i As Integer

For i = 1 To 6
    Cells(i, 1).Value = 100
Next i

النتيجة عند النقر فوق زر الأمر الموجود على الورقة:

حلقة واحدة في Excel VBA

تفسير: سيتم تنفيذ سطور التعليمة البرمجية بين For و Next ست مرات. بالنسبة لـ i = 1 ، يقوم Excel VBA بإدخال القيمة 100 في الخلية عند تقاطع الصف 1 والعمود 1. عندما يصل Excel VBA إلى التالي i ، فإنه يزيد i بـ 1 ويقفز مرة أخرى إلى عبارة For. بالنسبة لـ i = 2 ، يقوم Excel VBA بإدخال القيمة 100 في الخلية عند تقاطع الصف 2 والعمود 1 ، وما إلى ذلك.

ملاحظة: من الممارسات الجيدة دائمًا وضع مسافة بادئة (علامة جدولة) على الشفرة بين الكلمتين For و Next. هذا يجعل التعليمات البرمجية الخاصة بك أسهل للقراءة.

حلقة مزدوجة

يمكنك استخدام حلقة مزدوجة للتكرار خلال نطاق ثنائي الأبعاد من الخلايا.

ضع زر أمر في ورقة العمل الخاصة بك وقم بإضافة الأسطر التعليمات البرمجية التالية:

Dim i As Integer, j As Integer

For i = 1 To 6
    For j = 1 To 2
        Cells(i, j).Value = 100
    Next j
Next i

النتيجة عند النقر فوق زر الأمر الموجود على الورقة:

حلقة مزدوجة في Excel VBA

تفسير: بالنسبة لـ i = 1 و j = 1 ، يقوم Excel VBA بإدخال القيمة 100 في الخلية عند تقاطع الصف 1 والعمود 1. عندما يصل Excel VBA إلى التالي ي ، يزيد j بقيمة 1 ويقفز مرة أخرى إلى بيان For j. بالنسبة لـ i = 1 و j = 2 ، يقوم Excel VBA بإدخال القيمة 100 في الخلية عند تقاطع الصف 1 والعمود 2. التالي ، يتجاهل Excel VBA التالي j لأن j يدير فقط من 1 إلى 2. عندما يصل Excel VBA إلى التالي i ، يزيد i مع 1 ويقفز إلى بيان For i. بالنسبة إلى i = 2 و j = 1 ، يقوم Excel VBA بإدخال القيمة 100 في الخلية عند تقاطع الصف 2 والعمود 1 ، وما إلى ذلك.

حلقة ثلاثية

يمكنك استخدام حلقة ثلاثية للتكرار خلال نطاقات ثنائية الأبعاد في أوراق عمل Excel المتعددة.

ضع زر أمر في ورقة العمل الخاصة بك وقم بإضافة الأسطر التعليمات البرمجية التالية:

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3
    For i = 1 To 6
        For j = 1 To 2
            Worksheets(c).Cells(i, j).Value = 100
        Next j
    Next i
Next c

تفسير: التغيير الوحيد الذي تم إجراؤه مقارنةً برمز الحلقات المزدوجة هو أننا قمنا بإضافة حلقة واحدة إضافية وأضفنا أوراق عمل (ج). أمام الخلايا للحصول على نطاق ثنائي الأبعاد على الورقة الأولى لـ c = 1 ، الورقة الثانية لـ c = 2 والورقة الثالثة لـ c = 3. قم بتنزيل ملف Excel لرؤية هذه النتيجة.

هل في حين حلقة

بالإضافة إلى حلقة For Next ، توجد حلقات أخرى في Excel VBA. على سبيل المثال ، Do While Loop. سيتم تكرار الشفرة الموضوعة بين Do While و Loop طالما أن الجزء بعد Do While صحيح.

1. ضع زر أمر في ورقة العمل الخاصة بك وأضف أسطر التعليمات البرمجية التالية:

Dim i As Integer
i = 1

Do While i < 6
    Cells(i, 1).Value = 20
    i = i + 1
Loop

النتيجة عند النقر فوق زر الأمر الموجود على الورقة:

هل في حين حلقة

تفسير: طالما أنا هو أقل من 6 و Excel VBA يدخل قيمة 20 في الخلية عند تقاطع الصف الأول والعمود 1 والزيادات ط ب 1. في Excel VBA (وفي لغات البرمجة الأخرى)، الرمز "=" وسائل يصبح. هذا لا يعني على قدم المساواة. لذلك i = i + 1 تعني i + i 1. بمعنى آخر: خذ القيمة الحالية لـ i وأضف 1 إليها. على سبيل المثال، إذا كان لي = 1، ط يصبح 1 + 1 = 2. ونتيجة لذلك، سيتم وضع القيمة 20 في العمود A خمس مرات (وليس ستة لأن Excel VBA توقف عندما يساوي 6).

2. أدخل بعض الأرقام في العمود A.

أي عدد من الصفوف

3. ضع زر أمر في ورقة العمل الخاصة بك وقم بإضافة خطوط التعليمات البرمجية التالية:

Dim i As Integer
i = 1

Do While Cells(i, 1).Value <> ""
    Cells(i, 2).Value = Cells(i, 1).Value + 10
    i = i + 1
Loop

النتيجة عند النقر فوق زر الأمر الموجود على الورقة:

المتقدمة هل في حين حلقة

Explanation: ما دامت الخلايا (i، 1).القيمة ليست فارغة (<> تعني عدم تساوي) ، يقوم Excel VBA بإدخال القيمة في الخلية عند تقاطع الصف I والعمود 2 ، أي 10 أعلى من القيمة الموجودة في الخلية عند تقاطع الصف i والعمود 1 يتوقف Excel VBA عندما تساوي 7 لأن الخلايا (7 ، 1) .Value فارغ. هذه طريقة رائعة للتكرار خلال أي عدد من الصفوف في ورقة العمل.

اقرأ أيضًا: