VBA UsedRange | كيف تجد عدد الصفوف والأعمدة المستخدمة؟

UsedRange ، كما يوحي الاسم ، هي النطاقات التي كنوع من القيم فيها ، لا يتم تضمين الخلايا الفارغة في النطاقات المستخدمة ، لذلك في نطاقات VBA المستخدمة هي خاصية كائن النطاق في VBA لتلك النطاق من الخلايا في الصفوف والأعمدة غير الفارغة وفيها بعض القيم.

UsedRange في VBA Excel

تُعد UsedRange في VBA خاصية لورقة العمل التي تُرجع كائن نطاق يمثل النطاق المستخدم (جميع خلايا Excel المستخدمة أو المعبأة في ورقة عمل) في ورقة عمل معينة. إنها خاصية تمثل المنطقة المغطاة أو المقيدة بالخلية المستخدمة العلوية اليسرى وآخر الخلايا المستخدمة اليمنى في ورقة العمل.

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

فيما يلي رسم توضيحي لـ UsedRange في ورقة عمل:

يمكننا أن نرى في لقطة الشاشة أعلاه أن UsedRange هو A1: D5.

أمثلة على خاصية UsedRange في Excel VBA

دعونا نلقي نظرة على بعض الأمثلة أدناه لمعرفة كيف يمكن استخدام خاصية UsedRange في ورقة العمل للعثور على النطاق المستخدم في VBA:

يمكنك تنزيل قالب Excel UsedRange من VBA هنا - قالب Excel UsedRange من VBA

مثال 1

لنفترض أن لدينا ملف Excel يحتوي على ورقتي عمل ، ونرغب في العثور على النطاق المستخدم وتحديده في الورقة 1.

دعونا نرى ما تحتويه الورقة 1:

نستخدم خاصية UsedRange في نافذة VBA الفورية لإنجاز هذه المهمة. نافذة VBA الفورية هي أداة تساعد في الحصول على معلومات حول ملفات Excel ، وتنفيذ أو تصحيح أي كود VBA بسرعة ، حتى إذا كان المستخدم لا يكتب أي وحدات ماكرو. وهي موجودة في محرر Visual Basic ويمكن الوصول إليها على النحو التالي:

  • انتقل إلى علامة تبويب Developer Excel ، ثم انقر فوق محرر Visual Basic ، أو اضغط على Alt + F11 لفتح نافذة محرر Visual Basic.

عند القيام بذلك ، تفتح نافذة على النحو التالي:

  • اضغط على Ctrl + G لفتح النافذة الفورية ، واكتب الرمز.

تبدو النافذة الفورية كما يلي:

  • سيحدد الكود التالي النطاق المستخدم في الورقة 1

رمز:

؟ أوراق العمل ("Sheet1"). تنشيط True؟ ActiveSheet.UsedRange.Select True

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

عند كتابة هذا الرمز ، نرى أنه يتم تحديد النطاق المستخدم في الورقة 1 على النحو التالي:

المثال رقم 2

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

  • قم بإنشاء اسم ماكرو في الوحدة النمطية.

رمز:

 المجموع الفرعي للصفوف () End Sub 

  • حدد متغير TotalRow كعدد صحيح في VBA:

رمز:

 إجمالي الصفوف الفرعية () Dim TotalRow كـ عدد صحيح End Sub 

  • الآن قم بتعيين المتغير TotalRow بالصيغة لحساب إجمالي عدد الصفوف:

رمز:

 إجمالي الصفوف الفرعية () Dim TotalRow كـ عدد صحيح TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub 

  • الآن يمكن عرض القيمة الناتجة لـ TotalRow وإعادتها باستخدام مربع رسالة VBA (MsgBox) على النحو التالي:

رمز:

 TotalRows () Sub TotalRow كـ عدد صحيح TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub 

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

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

المثال رقم 3

وبالمثل ، إذا كنا نرغب في العثور على العدد الإجمالي للأعمدة المستخدمة في الورقة 1 ، فسنتبع نفس الخطوات المذكورة أعلاه باستثناء تغيير طفيف في الكود كما يلي:

رمز:

 TotalCols () Dim TotalCol كعدد صحيح TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub 

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

لذلك ، يتم إرجاع "4" في مربع الرسالة ، وكما نرى في الورقة 1 ، فإن إجمالي عدد الأعمدة في النطاق المستخدم هو 4.

المثال رقم 4

الآن ، لنفترض أننا نرغب في العثور على آخر صف ورقم عمود مستخدمين في الورقة 2 من الملف. دعونا نرى ما تحتويه الورقة 2:

للقيام بذلك ، نتبع الخطوات التالية:

  • قم بإنشاء اسم ماكرو في الوحدة النمطية.

رمز:

 Sub LastRow () End Sub 

  • تحديد متغير LastRow كعدد صحيح.

رمز:

 Sub LastRow () Dim LastRow As Integer End Sub 

  • الآن عيّن المتغير LastRow بالصيغة لحساب رقم الصف الأخير المستخدم:

رمز:

 Sub LastRow () Dim LastRow كـ عدد صحيح LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row End Sub 

ترجع طريقة SpecialCells في Excel VBA كائن نطاق يمثل فقط أنواع الخلايا المحددة. صيغة طريقة SpecialCells هي:

RangeObject.SpecialCells (النوع والقيمة)

في الكود أعلاه ، xlCellTypeLastCell: يمثل الخلية الأخيرة في النطاق المستخدم.

ملاحظة: سيتضمن "xlCellType" حتى الخلايا الفارغة التي تم تغيير التنسيق الافتراضي لأي خلية بها.
  • الآن يمكن عرض القيمة الناتجة لرقم LastRow وإعادتها باستخدام مربع رسالة (MsgBox) على النحو التالي:

رمز:

 Sub LastRow () Dim LastRow كـ عدد صحيح LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub 

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

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

وبالمثل ، إذا كنا نرغب في العثور على آخر رقم عمود تم استخدامه في الورقة 2 ، فسوف نتبع نفس الخطوات المذكورة أعلاه باستثناء تغيير طفيف في الكود كما يلي:

رمز:

 Sub LastCol () Dim LastCol كـ عدد صحيح LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Column MsgBox LastCol End Sub 

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

لذلك ، يمكننا أن نرى في لقطة الشاشة أعلاه أن "3" يتم إرجاعه في مربع الرسالة ، وكما نرى في الورقة 2 ، فإن رقم العمود الأخير المستخدم هو 3.

أشياء يجب تذكرها حول VBA UsedRange

  • VBA UsedRange هو نطاق مستطيل.
  • يتضمن VBA UsedRange الخلايا التي تحتوي على أي بيانات أو يتم تنسيقها وما إلى ذلك.
  • لا يتضمن Excel VBA UsedRange بالضرورة الخلية العلوية اليسرى من ورقة العمل.
  • لا تعتبر UsedRange بالضرورة الخلية النشطة على أنها مستخدمة.
  • يمكن استخدام UsedRange للعثور على آخر صف مستخدم في VBA وإعادة تعيين النطاق المستخدم ، إلخ.
  • يمكن استخدام الضغط على مفاتيح Excel المختصرة CTRL + SHIFT + ENTER على لوحة المفاتيح لتوسيع التحديد من خلية نشطة إلى آخر خلية مستخدمة في ورقة العمل.

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