كيفية استخدام خاصية usedrange في vba؟

في VBA، تمثل الخاصية UsedRange نطاق ورقة العمل التي تحتوي على البيانات. يبدأ النطاق المستخدم من الخلية الأولى في ورقة العمل حيث توجد قيمة إلى الخلية الأخيرة التي توجد بها قيمة. تمامًا مثل المثال التالي حيث استخدمت النطاق من A1 إلى C11.

خاصية النطاق المستخدمة

ملاحظة: خاصية UsedRange هي خاصية للقراءة فقط .

اكتب الكود باستخدام UsedRange

استخدم الكود التالي.

  1. أولا، تحتاج إلى تحديد جدول البيانات.
  2. ثم أدخل النقطة (.) وأدخل “UsedRange”.
  3. بعد ذلك، استخدم الخاصية أو الطريقة التي تريد استخدامها.
  4. في النهاية، قم بتشغيل الكود.
 Sub vba_used_range() ActiveSheet.UsedRange.Clear End Sub

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

انسخ النطاق المستخدم

استخدم الكود التالي لنسخ UsedRange بالكامل.

انسخ النطاق المستخدم بالكامل
 Sub vba_used_range() ActiveSheet.UsedRange.Copy End Sub

عد الصفوف والأعمدة في النطاق المستخدم

توجد خاصية العد التي يمكنك استخدامها لحساب صفوف وأعمدة النطاق المستخدم.

 MsgBox ActiveSheet.UsedRange.Rows.Count MsgBox ActiveSheet.UsedRange.Columns.Count

يعرض سطرا التعليمات البرمجية أعلاه مربع رسالة يحتوي على عدد الصفوف والأعمدة الموجودة في النطاق المستخدم.

قم بتنشيط الخلية الأخيرة في النطاق المستخدم

يمكنك أيضًا تمكين الخلية الأخيرة في النطاق المستخدم (ستكون هذه هي الخلية الأخيرة المستخدمة في ورقة العمل). خذ بعين الاعتبار التعليمة البرمجية التالية.

آخر خلية نشطة في النطاق المستخدم
 Sub vba_used_range() Dim iCol As Long Dim iRow As Long iRow = ActiveSheet.UsedRange.Rows.Count iCol = ActiveSheet.UsedRange.Columns.Count ActiveSheet.UsedRange.Select Selection.Cells(iRow, iCol).Select End Sub

يأخذ هذا الرمز عدد الصفوف والأعمدة باستخدام خاصية UsedRange ثم يستخدم هذه الأرقام لتحديد الخلية الأخيرة في النطاق المستخدم.

ارجع إلى UsedRange في ورقة عمل أخرى

إذا حاولت الإشارة إلى النطاق المستخدم في ورقة عمل غير الورقة النشطة، فسيظهر VBA خطأ مثل هذا.

النطاق المستخدم في ورقة عمل أخرى

لذلك يجب تنشيط ورقة العمل التي تشير إليها (عندها فقط يمكنك استخدام خاصية UsedRange).

 Sub vba_used_range() Worksheets("Sheet4").Activate Worksheets("Sheet4").UsedRange.Select End Sub

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

احصل على عنوان النطاق المستخدم

استخدم السطر التالي من التعليمات البرمجية للحصول على عنوان النطاق المستخدم.

 Sub vba_used_range() MsgBox ActiveSheet.UsedRange.Address End Sub

عد الخلايا الفارغة في النطاق المستخدم

يستخدم التعليمة البرمجية التالية حلقات FOR (لكل) ويتكرر عبر كافة الخلايا في النطاق المستخدم ويقوم بحساب الخلايا الفارغة.

 Sub vba_used_range() Dim iCell As Range Dim iRange As Range Dim c As Long Dim i As Long Set iRange = ActiveSheet.UsedRange For Each iCell In ActiveSheet.UsedRange c = c + 1 If IsEmpty(iCell) = True Then i = i + 1 End If Next iCell MsgBox "There are total " & c & _ " cell(s) in the range, and out of those " & _ i & " cell(s) are empty." End Sub

عند تشغيل هذا الرمز، فإنه يعرض مربع رسالة يحتوي على إجمالي عدد الخلايا وعدد الخلايا الفارغة.

اضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *