كيفية استخدام VBA لكل حلقة؟ (مع أمثلة Excel)

Excel VBA لكل حلقة

يمر VBA For each Loop عبر كل مجموعة الكائنات أو العناصر ويقوم بمجموعة مماثلة من الأنشطة. سيأخذ في الاعتبار جميع الكائنات المحددة المتاحة ويؤدي النشاط المطلوب في كل كائن.

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

بناء الجملة

لكل حلقة يمكن أن تدور عبر كل مجموعة من الكائنات أو العناصر. المجموعة ليست سوى "كل المصنفات المفتوحة" ، "كل أوراق العمل في مصنف" ، "كل مجموعة الأشكال والمخططات في المصنف".

دعونا نلقي نظرة على بناء الجملة.

لكل كائن في المجموعة ماذا تفعل؟ الكائن التالي

على سبيل المثال ، لديك 10 أوراق في دفتر العمل الخاص بك وتريد إخفاء جميع أوراق العمل باستثناء تلك التي أنت فيها. هل يمكنك الإخفاء يدويًا ، نعم يمكنك ذلك ، ولكن ماذا لو كان لديك 100 ورقة مثل هذا ليس هذا مملاً ووقتًا -مهمة مستهلكة للقيام بها. يمكنك القيام بذلك باستخدام كل حلقة.

كيفية استخدام لكل حلقة في VBA؟ (أمثلة)

يمكنك تنزيل VBA لكل قالب حلقة هنا - VBA لكل قالب حلقة

المثال رقم 1 - أدخل نفس النص في كل الأوراق

سنرى كيفية استخدام FOR EACH في VBA بمثال بسيط. افترض أن لديك 5 أوراق عمل في مصنف وتريد إدراج كلمة "مرحبًا" في جميع أوراق العمل في الخلية A1.

يمكننا القيام بذلك باستخدام FOR EACH LOOP. شيء واحد يجب أن تتذكره هنا هو أننا نقوم بالفعل بهذا النشاط في كل ورقة عمل ، وليس في نفس ورقة العمل. اتبع الخطوات أدناه لكتابة كود فبا.

الخطوة 1: ابدأ ماكرو Excel.

رمز:

 For_Each_Example1 فرعي () End Sub 

الخطوة 2: نظرًا لأننا نشير إلى أوراق العمل ، فإننا نعلن عن المتغير باسم "ورقة العمل".

رمز:

 Sub For_Each_Example1 () Dim Ws As Subheet End Sub 

الخطوة 3: الآن باستخدام FOR EACH LOOP ، نحتاج إلى إحالة كل ورقة عمل في المصنف النشط.

رمز:

 Sub For_Each_Example1 () خافت Ws كورقة عمل لكل Ws في ActiveWorkbook. أوراق العمل التالية Ws End Sub 

الخطوة 4: اكتب الآن ما نريد القيام به في كل ورقة عمل. في كل ورقة عمل ، نحتاج إلى وضع كلمة "مرحبًا" في الخلية A1.

رمز: 

 For_Each_Example1 () خافت Ws كورقة عمل لكل Ws في ActiveWorkbook.Worksheets Ws.Range ("A1"). القيمة = "مرحبًا" التالي Ws End Sub 

الخطوة 5: الآن قم بتشغيل هذا الرمز يدويًا من خلال الخيار أو اضغط على مفتاح الاختصار F5 ، لا يهم عدد الأوراق التي لديك ستدرج كلمة "مرحبًا" في جميع أوراق العمل.

مثال # 2 - إخفاء كل الأوراق

كما قيل سابقًا في المنشور ، ماذا لو كان لديك مئات الأوراق لإخفائها باستثناء تلك التي أنت فيها. باستخدام كل حلقة ، يمكننا إخفاء جميع الأوراق في Excel.

الخطوة 1: ابدأ الماكرو باسمك.

رمز:

 For_Each_Example2 فرعي () End Sub 

الخطوة 2: قم بتعريف المتغير على أنه " Ws ".

رمز:

 Sub For_Each_Example2 () Dim Ws As Subheet End Sub 

الخطوة 3: الآن في كل ورقة عمل ما عليك القيام به هو إخفاء الورقة.

رمز:

 Sub For_Each_Example2 () خافت Ws كورقة عمل لكل Ws في ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws End Sub 

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

رمز:

 Sub For_Each_Example2 () Dim Ws كأوراق عمل لكل Ws في ActiveWorkbook.Worksheets If Ws.Name "Main Sheet" ثم Ws.Visible = xlSheetVeryHidden End If Next Ws End Sub 

و رمز المشغل وسائل لا تساوي في VBA .

لذلك تقول التعليمات البرمجية عندما تقوم بالتكرار خلال جميع أوراق العمل في المصنف النشط ، تخفي فقط إذا كان اسم الورقة لا يساوي اسم الورقة الرئيسي.

يمكن القيام بذلك باستخدام عبارة IF في VBA. اكتب الرمز على النحو IF Ws. اسم "الورقة الرئيسية" ثم قم بإخفائه أو إذا كان يساوي اسم الورقة "Main Sheet" ثم لا تخفي.

الخطوة 5: الآن قم بتشغيل الكود باستخدام مفتاح F5 أو يدويًا بعد ذلك ، سيخفي كل ورقة العمل باستثناء الورقة المسماة "Main Sheet".

مثال # 3 - إظهار كل الأوراق

لقد رأينا كيفية إخفاء جميع الأوراق باستثناء الصفحة التي نحن فيها. وبالمثل ، يمكننا إظهار جميع أوراق العمل أيضًا.

نحتاج فقط إلى تغيير الكود من xlSheetVeryHidden إلى xlSheetVisible.

رمز:

 Sub For_Each_Example3 () خافت Ws كورقة عمل لكل Ws في ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws End Sub 

هنا لا نحتاج إلى شرط IF لأننا نكشف كل الأوراق. إذا كنت لا تريد إظهار أي ورقة محددة ، فيمكنك استخدام شرط IF وتوفير اسم الورقة.

مثال رقم 4 - حماية وإلغاء حماية جميع الأوراق

حماية جميع الأوراق: يمكننا حماية جميع الأوراق الموجودة في المصنف بقطعة من التعليمات البرمجية فقط. كل الكود هو نفس الشيء الوحيد الذي يتعين علينا القيام به هنا هو بدلاً من Ws. مرئي نحتاج إلى وضع الرمز Ws. حماية واكتب كلمة المرور.

رمز:

 Sub For_Each_Example4 () خافت Ws كورقة عمل لكل Ws في ActiveWorkbook. أوراق العمل Ws.Protect Password: = "Excel @ 2019" التالي Ws End Sub 

إلغاء حماية جميع الأوراق: في ملاحظة مماثلة ، باستخدام vba ، يمكننا أيضًا إلغاء حماية جميع الأوراق التي كانت محمية في المصنف. نحتاج فقط إلى وضع كلمة "إلغاء الحماية وكلمة المرور".

رمز:

 Sub For_Each_Example6 () خافت Ws كورقة عمل لكل Ws في ActiveWorkbook. أوراق العمل Ws.Unprotect Password: = "Excel @ 2019" التالي Ws End Sub 

أشياء للذكرى

  • كل مجموعة من الأشياء.
  • سوف يأخذ في الاعتبار جميع الكائنات المحددة في المصنف المحدد.
  • أثناء الإعلان عن المتغير ، نحتاج إلى الكائن الذي نشير إليه. على سبيل المثال ، ورقة العمل ، المصنف ، الرسم البياني ، إلخ.

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