النطاق المتغير VBA | أمثلة على النطاق المتغير في Excel VBA

متغير Excel VBA في النطاق

المتغيرات هي قلب وروح أي مشاريع VBA كبيرة نظرًا لأن المتغيرات هي القلب والروح ، فإن نوع البيانات الذي نخصصه لهم يعد أيضًا عاملاً مهمًا جدًا في هذا الصدد. في مقالاتنا العديدة السابقة ، ناقشنا مرات عديدة حول المتغيرات وأهمية نوع بياناتها. أحد هذه المتغيرات ونوع البيانات هو "Range Variable" ، في هذه المقالة المخصصة الخاصة ، سنقدم دليلاً كاملاً عن "Range Variable" في excel VBA.

ما هو النطاق المتغير في Excel VBA؟

مثل كل نطاق متغير آخر في VBA ، فإن المتغير هو أيضًا متغير ولكنه "كائن متغير" نستخدمه لتعيين مرجع نطاق معين من الخلايا.

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

لذلك ، بعد أن نعلن عن المتغير ، نحتاج إلى استخدام الكلمة الأساسية "SET" لتعيين مرجع الكائن ، أي كائن النطاق في هذه الحالة.

حسنًا ، سنرى الآن بعض الأمثلة على متغيرات نطاق VBA من Excel عمليًا.

أمثلة على متغير النطاق في Excel VBA

يمكنك تنزيل نموذج VBA Variable Range Excel من هنا - قالب Excel ذو النطاق المتغير VBA

على سبيل المثال ، افترض أنك تريد تحديد نطاق الخلايا من A2 إلى B10 لصورة لقطة الشاشة أدناه.

لتحديد هذا النطاق المذكور من الخلايا ، كل هذه الأشياء بينما لدينا كائن RANGE وداخل كائن النطاق ، ذكرنا عنوان الخلية بين علامتي اقتباس.

رمز:

 Range_Variable_Example () نطاق فرعي ("A2: B10") End Sub 

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

رمز:

النطاق الفرعي Range_Variable_Example () ("A2: B10"). End Sub

نظرًا لأننا نحتاج إلى تحديد الخلايا المذكورة ببساطة ، اختر طريقة "تحديد" من قائمة IntelliSense.

رمز:

 Range_Variable_Example () نطاق فرعي ("A2: B10") حدد End Sub 

قم بتشغيل الكود وسيحدد الخلايا المذكورة.

هذا أمر واضح ، لكن تخيل سيناريو استخدام نفس النطاق في مشروع VBA الطويل ، دعنا نقول مئات المرات ، فإن كتابة نفس رمز "Range (" A2: A10 ")" 100 مرة سيستغرق بعض الوقت ولكن بدلاً من ذلك سنعلن عن المتغير ونخصص نوع البيانات ككائن "Range".

حسنًا ، دعنا نطلق اسمك على متغير ونخصص نوع البيانات كـ "Range".

بخلاف "متغيرات الكائن" يمكننا البدء في استخدام المتغيرات باسمها ولكن في حالة "متغيرات الكائن" نحتاج إلى تعيين المرجع.

على سبيل المثال ، في هذه الحالة ، يكون كائن المتغير (Rng) هو النطاق ، لذا نحتاج إلى تعيين المرجع الذي ستشير إليه كلمة "Rng". لتعيين المرجع ، نحتاج إلى استخدام الكلمة الأساسية "Set".

الآن يشير المتغير "Rng" إلى نطاق الخلايا من A2 إلى B10 ، بدلاً من كتابة "Range (" A2: B10 "))" في كل مرة يمكننا ببساطة كتابة كلمة "Rng" .

في السطر التالي اذكر اسم المتغير "Rng" وضع نقطة لترى السحر.

كما ترى أعلاه ، يمكننا أن نرى جميع خصائص وأساليب كائن النطاق مثل السابق.

اجعل المتغير ديناميكيًا

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

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

للعثور على آخر صف وعمود مستخدمين ، نحتاج إلى تحديد متغيرين آخرين.

رمز:

 Sub Range_Variable_Example () Dim Rng كنطاق Dim LR طويل 'LR = الصف الأخير لفهم Dim LC طويل' LC = العمود الأخير لفهم End Sub 

الآن سيجد الرمز أدناه آخر صف وعمود مستخدمين قبل أن نقوم بتعيين المرجع إلى متغير كائن النطاق.

رمز:

 Sub Range_Variable_Example () Dim Rng كنطاق Dim LR طويل 'LR = الصف الأخير لفهم Dim LC طويل' LC = العمود الأخير لفهم LR = الخلايا (Rows.Count، 1). End (xlUp) .Row LC = الخلايا (1، Columns.Count) ، النهاية (xlToLeft) ، العمود End Sub 

افتح الآن بيان الكلمة الرئيسية "Set".

رمز:

 Sub Range_Variable_Example () Dim Rng كنطاق Dim LR طويل 'LR = الصف الأخير لفهم Dim LC طويل' LC = العمود الأخير لفهم LR = الخلايا (Rows.Count، 1). End (xlUp) .Row LC = الخلايا (1، Columns.Count). End (xlToLeft) .Column Set Rng = End Sub 

على عكس الطريقة السابقة ، نستخدم خصائص VBA CELLS هذه المرة.

رمز:

 Sub Range_Variable_Example () Dim Rng كنطاق Dim LR طويل 'LR = الصف الأخير لفهم Dim LC طويل' LC = العمود الأخير لفهم LR = الخلايا (Rows.Count، 1). End (xlUp) .Row LC = الخلايا (1، Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1، 1) End Sub 

لقد ذكرت الخلايا (1،1) ، أي يشير هذا إلى الخلية الأولى في الورقة النشطة ولكننا نحتاج إلى مرجع نطاق البيانات ، لذا استخدم خاصية "RESIZE" واذكر متغيرات "الصف والعمود الأخير المستخدم".

رمز:

 Sub Range_Variable_Example () Dim Rng كنطاق Dim LR طويل 'LR = الصف الأخير لفهم Dim LC طويل' LC = العمود الأخير لفهم LR = الخلايا (Rows.Count، 1). End (xlUp) .Row LC = الخلايا (1، Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1، 1) .Resize (LR، LC) End Sub 

الآن سيؤدي هذا إلى تعيين أحدث مرجع لمتغير كائن النطاق "Rng". بعد ذلك ، اذكر اسم المتغير واستخدم طريقة "تحديد".

 Sub Range_Variable_Example () Dim Rng كنطاق Dim LR طويل 'LR = الصف الأخير لفهم Dim LC طويل' LC = العمود الأخير لفهم LR = الخلايا (عدد الصفوف ، 1). النهاية (xlUp). الصف LC = الخلايا (1، Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1، 1) .Resize (LR، LC) Rng. حدد End Sub 

الآن سأضيف بضعة سطور أخرى إلى بياناتي.

لقد أضفت ثلاثة سطور إضافية من البيانات إذا قمت بتشغيل الكود الآن ، فيجب تحديد أحدث نطاق بيانات.

أشياء للذكرى

  • متغير النطاق في Excel VBA هو متغير كائن.
  • عندما نستخدم متغير الكائن ، نحتاج إلى استخدام الكلمة الأساسية "Set" وتعيين مرجع الكائن إلى المتغير.
  • بدون تحديد المرجع ، لا يمكننا استخدام متغير كائن.

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