كيفية التنقل في نطاق باستخدام vba؟
للتكرار عبر نطاق في VBA، تحتاج إلى استخدام خيار “For Each Loop”. باستخدام هذه الحلقة، يمكنك كتابة التعليمات البرمجية حيث تطلب من VBA المرور عبر كل خلية في النطاق أو العمود أو الصف وتنفيذ نشاط معين.
Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("A1:A10").Cells iCell.Value = "Yes" Next iCell End Sub
فيما يلي خطوات المشي على الشاطئ:
- أولاً، قم بتعريف متغير لاستخدامه كخلية النطاق المراد تكراره.
- بعد ذلك، ابدأ حلقة “For Each” واستخدم المتغير “iCell” لتمثيل كل خلية في النطاق أثناء الحلقة.
- بعد ذلك، تحتاج إلى كتابة سطر من التعليمات البرمجية لتنفيذ نشاط على كل خلية نقوم فيها بتكرار النطاق.
- في النهاية، قم بإنهاء الكود الخاص بالحلقة.
قم بالتكرار على العمود بأكمله وصف واحد باستخدام VBA
بنفس الطريقة، يمكنك التكرار خلال كل خلية في صف واحد باستخدام الكود التالي وهو مطابق للكود الذي استخدمناه في المثال السابق، والفرق الوحيد هو النطاق الذي حددناه.
ملاحظة: قبل الانتقال إلى عمود أو صف كامل، يجب أن تفهم أن الحلقة قد تستغرق بعض الوقت وقد يتجمد برنامج Excel الخاص بك لبضع دقائق.
Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("A:A").Cells iCell.Value = "Yes" Next iCell End Sub
وبنفس الطريقة، يمكنك استخدام خط كامل كنطاق للمرور عبره.
Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("1:1").Cells iCell.Value = "Yes" Next iCell End Sub
حلقة من خلال النطاق الديناميكي
وإذا كنت تريد التكرار عبر نطاق ديناميكي من الخلايا، فارجع إلى الكود التالي.
Sub vba_dynamic_loop_range() Dim iCell As Range Dim iRange1 As String Dim iRange2 As String Dim rangeName As String iRange1 = ActiveCell.Address iRange2 = ActiveCell.Offset(5, 5).Address rangeName = iRange1 & ":" & iRange2 For Each iCell In Range(rangeName).Cells iCell = "Yes" Next iCell End Sub
ما هو فبا
الدروس ذات الصلة
- حلقات VBA (المبتدئ إلى المتقدم)
- VBA حدد الحالة
- Excel VBA Do while Loop و (Do Loop while) – دليل
- قم بالمراجعة عبر كافة الأوراق باستخدام VBA في Excel
- VBA FOR LOOP (للتالي، لكل منهما)