كيفية استخدام خلية كمتغير في vba؟
لاستخدام نطاق أو خلية واحدة كمتغير، يجب عليك أولاً الإعلان عن هذا المتغير باستخدام نوع بيانات النطاق. بمجرد الانتهاء من ذلك، تحتاج إلى تحديد نطاق من خلية واحدة إلى هذا المتغير باستخدام كائن النطاق. يتيح لك هذا أيضًا الوصول إلى كافة الخصائص والأساليب التي يمكنك استخدامها مع النطاق.
- استخدم الكلمة الأساسية “Dim” وأدخل اسم المتغير.
- قم بتعريف الكلمة الأساسية كـ Range .
- اكتب اسم المتغير.
- حدد النطاق الذي تريد تعيينه للمتغير.
تعيين التحديد لمتغير النطاق
يمكنك أيضًا استخدام النطاق المحدد لمتغير ثم استخدام هذا المتغير للوصول إلى الخصائص والأساليب. خذ بعين الاعتبار التعليمة البرمجية التالية.
Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub
ولكن هناك شيء واحد يجب عليك توخي الحذر منه، وهو أنه عند تحديد كائن آخر غير النطاق، سيُظهر لك VBA خطأً.
ولكنها أيضًا طريقة ديناميكية حيث لا تحتاج إلى تغيير النطاق مرارًا وتكرارًا.
انسخ نطاقًا باستخدام متغير
بمجرد إعلان متغير كنطاق، يمكنك أيضًا نسخ هذا النطاق باستخدام اسم المتغير هذا. لنفترض أنك قمت بتعريف النطاق A1:A10 كمتغير rng (المثال أعلاه)، يمكنك نسخه باستخدام الكود التالي.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub
استخدام متغير النطاق في دالة
يمكنك أيضًا استخدام متغير نطاق للإشارة إلى نطاق في دالة عند كتابة ماكرو. خذ بعين الاعتبار التعليمة البرمجية التالية.
Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub
يأخذ قيمًا في النطاق A1:A10 وبما أنك تحتاج إلى استخدام المتغير “rng” فقد استخدمنا المتغير في القيمة القصوى لإخراجه.
ذات صلة: كيفية استخدام WorksheetFunction في VBA
حساب عدد الصفوف والأعمدة
كما قلت من قبل، بمجرد تحديد متغير كنطاق، سوف تحصل أيضًا على جميع الخصائص وطرق الوصول. تخيل أنك تريد حساب الصفوف والأعمدة. هنا هو الرمز الذي يمكن استخدامه.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub
عند تشغيل هذا الكود، فإنه يعرض رسالة تحتوي على عدد الصفوف والأعمدة في النطاق الذي حددته في المتغير.
تعريف ورقة العمل مع النطاق
في جميع الأمثلة المذكورة أعلاه، استخدمنا النطاق دون ذكر ورقة العمل، لذلك عند تشغيل هذا الرمز، سيشير VBA دائمًا إلى النطاق الموجود في الورقة النشطة. ولكن إذا كنت تريد الإشارة إلى ورقة عمل معينة، فستحتاج إلى استخدام كائن ورقة العمل مع النطاق.
Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")