هل تريد أتمتة المهام المتكررة في Excel باستخدام VBA؟ تعرف على كيفية استخدام حلقة For each لمعالجة البيانات بكفاءة في جداول البيانات الخاصة بك.
الحلقات و VBA معًا ، ولسبب وجيه أيضًا. عند التعامل مع كائنات Microsoft Office مثل المصنفات وأوراق العمل والنطاقات ، يمكن أن تساعدك الحلقات على التبديل بين كل منها بسهولة نسبية.
على الرغم من أن جميع حلقات VBA تعمل بشكل جيد مع الكائنات ، فإن حلقة "for each" هي واحدة من أفضل الخيارات للعمل مع مجموعات الكائنات. إذا كنت جديدًا في Excel VBA وتتطلع إلى إتقان كل حلقة ، يمكنك التعلم من بعض هذه الأمثلة بسرعة. إليك كل ما تحتاج لمعرفته حول هذه الحلقة المثالية.
لكل بنية حلقة
يشبه بناء جملة كل حلقة إلى حد بعيد حلقة for المعتادة في Excel VBA. ها هي البنية:
لكل متغير اسم في object_collection
[إفادة]
[إفادة]
[إفادة]
المتغير التالي
تبدأ الحلقة بكلمة رئيسية "لكل" ؛ يمكنك استخدام أي اسم متغير ، متبوعًا بمجموعة الكائنات. يمكن أن يكون الكائن الموجود في كل حلقة عبارة عن خلايا ونطاقات وأوراق وحتى مصنفات. هذا هو جمال هذه الحلقة. يمنحك المرونة للعمل مع مجموعات Excel المختلفة.
تدور الحلقة عبر كل قيمة مجموعة وتخزن المرجع في اسم المتغير المحدد. بعد التنفيذ ، ينفذ VBA البيانات المخزنة داخل الحلقة وينتقل إلى الكائن التالي في المجموعة (ملف
التالي الكلمة الأساسية مفيدة هنا). دعونا نفهم بنية الكود بمثال أساسي.كيفية استخدام For each Loop في Excel VBA
افترض أنك تريد طباعة رقم في الخلايا من A1 إلى A10. أفضل طريقة هي استخدام for كل حلقة مع دالة النطاق والسماح للكود بالقيام بالمطلوب. إليك كيفية القيام بهذه المهمة البسيطة:
- افتح محرر كود VBA بالضغط على بديل + F11.
- أدخل وحدة عن طريق النقر فوق وحدة الخيار داخل إدراج فاتورة غير مدفوعة.
- قم بإنشاء إجراء فرعي باستخدام الأمر الفرعي () في نافذة الوحدة النمطية لمحرر التعليمات البرمجية. تأكد من تعيين اسم ذي معنى للروتين الفرعي. في هذا المثال ، يمكنك استخدام الاسم for_each_loop.
الآن بعد أن أصبحت الأساسيات بعيدة عن الطريق ، حان الوقت لبدء كتابة الكود. ضمن الروتين الفرعي ، اكتب الأوامر التالية:
خلية قاتمة مثل يتراوح
لكل خلية في أوراق ("الورقة 1").يتراوح("A1: A10")
cell.value = 10
الخلية التالية
عندما يتم تنفيذ التعليمات البرمجية ، فإن ملف ج المتغير سيخزن قيمة A1. بعد ذلك ، أثناء انتقاله إلى العبارة داخل الحلقة ، يقوم بتقييم الأمر وإدخال قيمة 10 في الخلية المحددة ، أي الخلية A1.
أخيرًا ، أثناء انتقاله إلى الكلمة الأساسية التالية ، ينتقل إلى القيمة التالية ، أي الخلية A2. تعمل الحلقة حتى تصل إلى الخلية A10. هذا هو الناتج النهائي:
استخدام الحلقة مع الكائنات: الخلايا ، والأوراق ، والمصنفات
يحتوي Excel على ثلاثة أنواع رئيسية من الكائنات التي تعمل معها بانتظام. هذه هي الخلايا والأوراق والمصنفات. إليك كيفية استخدام الحلقة مع جميع أنواع الكائنات الثلاثة.
العمل مع الخلايا والحلقات معًا
افترض أنك تريد إضافة قيمة وبعض شروط التنسيق إلى نطاق من الخلايا في الورقة 1. كخطوة أولى ، تحتاج إلى تحديد الشروط داخل الحلقة ، متبوعة بأوامر التنسيق.
اكتب الكود التالي داخل روتين فرعي.
Sub for_each_loop ()
خافت ج مثل يتراوح
لكل ج في الأوراق ("الورقة 1").يتراوح("A1: A10")
مع ج
. القيمة = 10
خط. اللون = vbRed
خط. جريئة = حقيقي
خط. يتوسطه خط = حقيقي
نهايةمع
التالي ج
نهاية الفرعية
ال مع الوظيفة مفيدة عند أداء وظائف متعددة مع كائن واحد محدد. نظرًا لأنك تريد تنفيذ سلسلة من المهام باستخدام المتغير c ، فيمكنك دمجها جميعًا باستخدام a with..end with function.
الحلقة تساوي قيمة c مع كل قيمة خلية وتدخل القيمة على أنها 10. بالإضافة إلى ذلك ، فإنه يغير لون الخلية إلى اللون الأحمر ، ويجعل القيمة غامقة ويضربها. بمجرد أن يكمل جميع الخطوات ، ينتقل إلى القيمة المحددة التالية في النطاق.
استخدام الحلقة للتحكم في الأوراق
على غرار المثال أعلاه ، يمكنك استخدام كل حلقة للتحكم في الأوراق. ماذا عن تغيير اسم الورقة 1 إلى الورقة 3 باستخدام VBA؟
يمكنك استخدام التعليمات البرمجية التالية لإعادة تسمية ورقة عمل موجودة في Excel باستخدام VBA:
أوراق_كلمة_كلية فرعية ()
لكلshtفيThisWorkbookأوراق
إذا sht. الاسم = "الورقة 1" ثم
sht. الاسم = "الورقة 3"
نهايةلو
التالي sht
نهاية الفرعية
يمر الرمز عبر كل ورقة داخل المصنف ويتحقق من اسم كل ورقة. إذا واجه اسم Sheet1 ، فسيغيره إلى Sheet3. يتقدم من خلال الأوراق المتبقية ، إن وجدت ، داخل المصنف. بمجرد أن يصل تنفيذ الكود إلى الورقة الأخيرة ، فإنه يخرج من الحلقة والروتين الفرعي.
من بين بعض الاستخدامات الشائعة الأخرى ، يمكنك ذلك دمج أوراق عمل متعددة باستخدام VBA وتحديث المحتوى في ورقة واحدة باستخدام الحلقات.
التبديل من خلال المصنفات مع الحلقة
أخيرًا ، يمكنك استخدام for كل حلقة للتبديل بين المصنفات المختلفة وتنفيذ مهام محددة. دعنا نوضح هذه الوظيفة بمثال.
يمكنك استخدام أوامر VBA لإضافة ثلاثة مصنفات جديدة وإغلاق كل المصنفات المفتوحة معًا. إليك كيف يمكنك القيام بذلك:
الحلقة الفرعية
كتاب كتاب خافت مثل دفتر العمل
المصنفات.يضيف
المصنفات.يضيف
المصنفات.يضيف
لكل كتاب كتاب في المصنفات
كتاب.يغلق
الكتاب التالي
نهاية الفرعية
سيقوم الكود أعلاه بإغلاق مصنف الماكرو الخاص بك أيضًا ؛ تأكد من حفظ الرموز الخاصة بك قبل تشغيل هذا الرمز.
نظرًا لأن الحلقات لها استخدامات متعددة ، يمكنك أيضًا دمج البيانات من مصنفات متعددة في مصنف واحد.
استخدام عبارة IF المتداخلة مع التكرار الحلقي
مثل المثال أعلاه ، يمكنك استخدام عبارة IF داخل الحلقة للتحقق من شروط معينة. دعنا نغير لون خلفية الخلية بناءً على قيم الخلية.
يوجد عدد قليل من الأرقام العشوائية في الخلايا من A1 إلى A20. يمكنك كتابة حلقة للتنقل عبر كل خلية معينة في النطاق ؛ إذا كانت قيمة الخلية أقل من 10 ، فيجب أن يتغير لون الخلية إلى اللون الأحمر. إذا تجاوزت قيمة الخلية 10 ، يجب أن تتحول إلى اللون الأخضر. استخدم الكود التالي لهذا الغرض:
الحلقة الفرعية_w_if ()
خافت ج مثل يتراوح
لكل ج في الأوراق ("الورقة 4").يتراوح("A1: A20")
لوج.قيمة < 10 ثم
ج. الداخلية. مؤشر اللون = 3
آخر: ج. الداخلية. مؤشر اللون = 4
نهايةلو
التالي ج
نهاية الفرعية
هذا ما يبدو عليه الإخراج:
استخدام الحلقات في Excel VBA
لا يقتصر Excel VBA على كل حلقة فقط. هناك مجموعة متنوعة من الحلقات المفيدة التي تتيح لك أداء وظائف مختلفة بسهولة. قم بتقديم عروض للمهام العادية واليدوية ، مثل حلقات VBA مثل حلقة for ، افعلها بينما افعلها حتى تتدخل الحلقات لتجعل حياتك أسهل.