Vba

حلقة

Loop

دائرة مفردة | حلقة مزدوجة | حلقة ثلاثية | افعل أثناء التكرار





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

دائرة مفردة

يمكنك استخدام حلقة مفردة لإجراء تكرار خلال نطاق أحادي البعد من الخلايا.





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

لا أحدأناكما عدد صحيح

لأنا = 1إلى6
الخلايا (ط ، 1) ، القيمة = 100
التاليأنا

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



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

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

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

حلقة مزدوجة

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

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

أي مما يلي هو عمود تظهر فيه كل قطعة بيانات مرة واحدة فقط؟
لا أحدأناكما عدد صحيح، يكما عدد صحيح

لأنا = 1إلى6
لي = 1إلى2
الخلايا (ط ، ي) ، القيمة = 100
التاليي
التاليأنا

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

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

تفسير: بالنسبة إلى i = 1 و j = 1 ، يقوم Excel VBA بإدخال القيمة 100 في الخلية عند تقاطع الصف 1 والعمود 1. عندما يصل Excel VBA إلى Next j ، فإنه يزيد 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 متعددة.

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

لا أحدجكما عدد صحيح، أناكما عدد صحيح، يكما عدد صحيح

لج = 1إلى3
لأنا = 1إلى6
لي = 1إلى2
أوراق العمل (ج) الخلايا (ط ، ي) القيمة = 100
التاليي
التاليأنا
التاليج

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

افعل أثناء التكرار

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

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

كيفية إنشاء مخطط مبعثر
لا أحدأناكماعدد صحيح
أنا = 1

يفعل في حينأنا<6
الخلايا (ط ، 1) ، القيمة = 20
أنا = أنا + 1
حلقة

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

افعل أثناء التكرار

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

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

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

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

لا أحدأناكماعدد صحيح
أنا = 1

يفعل في حينالخلايا (ط ، 1). القيمة ''
الخلايا (i ، 2) .Value = Cells (i ، 1) .Value + 10
أنا = أنا + 1
حلقة

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

أداء متقدم أثناء التكرار

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

اكتمل 1/11! تعرف على المزيد حول الحلقات>
انتقل إلى الفصل التالي: أخطاء ماكرو



^