كيفية استخدام خاصية usedrange في vba؟
في VBA، تمثل الخاصية UsedRange نطاق ورقة العمل التي تحتوي على البيانات. يبدأ النطاق المستخدم من الخلية الأولى في ورقة العمل حيث توجد قيمة إلى الخلية الأخيرة التي توجد بها قيمة. تمامًا مثل المثال التالي حيث استخدمت النطاق من A1 إلى C11.
ملاحظة: خاصية UsedRange هي خاصية للقراءة فقط .
اكتب الكود باستخدام UsedRange
استخدم الكود التالي.
- أولا، تحتاج إلى تحديد جدول البيانات.
- ثم أدخل النقطة (.) وأدخل “UsedRange”.
- بعد ذلك، استخدم الخاصية أو الطريقة التي تريد استخدامها.
- في النهاية، قم بتشغيل الكود.
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
عند تشغيل هذا الرمز، فإنه يعرض مربع رسالة يحتوي على إجمالي عدد الخلايا وعدد الخلايا الفارغة.