VBA Break For Loop | كيفية الخروج من الحلقة في Excel VBA؟

Excel VBA Break For Loop

في VBA Break For Loop يُعرف أيضًا باسم الخروج من الحلقة ، كل حلقة في أي إجراء تم إعطاؤها مجموعة من التعليمات أو المعايير لتشغيلها من الوقت ولكن من الشائع جدًا أن تدخل بعض الحلقات في حلقة لا نهائية وبالتالي تفسد في مثل هذه السيناريوهات ، نحتاج إلى كسر أو الخروج من الحلقة للخروج من مواقف معينة.

لنفترض أننا وجهنا الحلقة للتشغيل لمدة 10 مرات وبناءً على الشرط المعطى إذا كانت قيمة الخلية أو أي معايير أخرى مقدمة ناجحة ، فيجب عليها الخروج من حلقة Excel قبل أن تكمل حصة الحلقة الكاملة البالغة 10. في هذه المقالة ، سنوضح لك كيفية الخروج من الحلقة بناءً على المعايير المحددة.

كيفية كسر / الخروج من الحلقات في VBA؟

يمكنك تنزيل قالب Excel VBA Break For Loop هنا - قالب VBA Break For Loop Excel

# 1 - استراحة للحلقة التالية

يتم استخدام VBA For Next Loop للتكرار الحلقي فوق الخلايا وتنفيذ مجموعة محددة من المهام. للحصول على مثال ، انظر إلى رمز VBA أدناه.

رمز:

 Sub Exit_Loop () خافت K بطول K = 1 إلى 10 خلايا (K ، 1) القيمة = K التالي K End Sub 

سيؤدي هذا إلى إدراج الأرقام التسلسلية من الخلية A1 إلى A10.

هذا هو الشيء الواضح في For Next Loop.

الآن أريد كسر الحلقة عند العثور على أي قيمة في الخلايا العشر الأولى ، لذلك قمت بإدخال بعض القيم النصية في الخلية A8.

الآن أريد إرشاد هذا في الكود بالقول "إذا كانت خلية التكرار لها قيمة معينة ، فعليها الخروج من الحلقة قبل الحد المحدد مسبقًا"

رمز:

 Sub Exit_Loop () Dim K طويل لـ K = 1 إلى 10 If Cells (K، 1) .Value = "" ثم الخلايا (K، 1) .Value = K Else Exit For End If Next K End Sub 

انظر إلى سطر التعليمات البرمجية هذا:

إذا كانت الخلايا (K ، 1) .Value = "" ثم

الخلايا (ك ، 1) ، القيمة = ك

آخر

  خروج عن

إنهاء إذا

تقول If Cells (K، 1) .Value = "" الخلية الحلقية تساوي لاشيء ، تواصل حلقة إدخال الأرقام التسلسلية من 1 إلى 10.

يقول الجزء الأخير من الحلقة:

آخر

  خروج عن

إذا كان الشرط أعلاه ليس TRUE ثم حلقة "الخروج من أجل".

الآن قم بتشغيل الكود وسوف يقوم بإدراج الأرقام التسلسلية حتى الخلية A7.

خرج الكود أعلاه على الفور من الحلقة دون أن يقول أي شيء ، كيف نعرف أنه خرج من الحلقة.

لمسح هذا الغموض ، نحتاج إلى وضع مربع رسالة VBA بسيط على النحو التالي.

رمز:

 Sub Exit_Loop () Dim K طويل لـ K = 1 إلى 10 If Cells (K، 1) .Value = "" ثم الخلايا (K، 1) .Value = K Else MsgBox "لدينا خلية غير فارغة ، في الخلية" & الخلايا (K، 1). Address & vbNewLine & "We are Exiting the loop" Exit For End If Next K End Sub 

عند التكرار عبر الخلية إذا تم العثور على أي خلية غير فارغة ، سيتم عرض الرسالة التي تقول "لقد حصلنا على خلية غير فارغة ، في الخلية A8. نحن نخرج من الحلقة ".

سيؤدي هذا إلى إبلاغ المستخدم بخروج الحلقة بعنوان خلية أيضًا. إذا تم إدخال أي قيمة عن طريق الخطأ ، فيمكننا التحقق من عنوان الخلية الذي تم إرجاعه في مربع الرسالة.

# 2 - استراحة حتى الحلقة

مثل الطريقة التي خرجنا بها من For Next Loop ، يمكننا بالمثل الخروج من حلقة "Do until" أيضًا. على سبيل المثال ، انظر إلى الكود أدناه.

رمز:

 Sub Exit_DoUntil_Loop () Dim K بطول K = 1 Do حتى K = 11 خلية (K ، 1) .Value = KK = K + 1 Loop End Sub 

يؤدي هذا الرمز أيضًا مهمة إدخال الأرقام التسلسلية. على سبيل المثال ، إذا كنا نرغب في الخروج من الحلقة عندما تصبح قيمة المتغير "k" 6 ، فنحن بحاجة إلى إدخال المعايير على النحو IF k = 6 ثم الخروج من الحلقة.

رمز:

 Sub Exit_DoUntil_Loop () خافت K بطول K = 1 افعل حتى K = 11 إذا K <6 ثم الخلايا (K ، 1) القيمة = K Else Exit Do End If K = K + 1 Loop End Sub 

سيؤدي هذا إلى تشغيل الحلقة حتى تصبح القيمة المتغيرة 6 ، وبعد ذلك ستخرج من الحلقة. إذا كنت ترغب في إظهار الرسالة للمستخدم ، فيمكنك إضافة مربع الرسالة أيضًا.

رمز:

 Sub Exit_DoUntil_Loop () خافت K بطول K = 1 افعل حتى K = 11 إذا K 5 "خروج قم بإنهاء إذا K = K + 1 حلقة نهاية فرعية 

سيظهر هذا الرسالة أدناه.

مثل هذا بناءً على المعايير المعطاة ، يمكننا الخروج من الحلقة إذا كانت المعايير TRUE وإلا يمكننا متابعة الحلقة.


$config[zx-auto] not found$config[zx-overlay] not found