كيفية استخدام طريقة الخلية الخاصة؟
في VBA، تتيح لك طريقة الخلايا الخاصة تحديد خلية أو نطاق من الخلايا من نوع معين ونوع قيمة محدد. لنفترض أنك تريد معرفة ما هي الخلايا التي تحتوي على صيغة والتي تم ترقيمها كقيمة في النطاق A1:A10؟ حسنًا، يمكنك تحقيق هذه النتيجة باستخدام طريقة SpecialCells.
استخدم طريقة الخلايا الخاصة في VBA
نكتب هنا رمزًا لمعرفة عنوان آخر خلية مستخدمة في النطاق A1:A10. لاحظ أنه يوجد في طريقة الخلية الخاصة وسيطتان، إحداهما مطلوبة والأخرى اختيارية.
- أولاً، قم بتعريف متغير كنطاق لتخزين عنوان الخلية الذي تم إرجاعه بواسطة الكود.
- بعد ذلك، ارجع إلى النطاق واستخدم طريقة “SpecialCells” حيث تحتاج إلى تحديد وسيطة “Type” باستخدام “xlCellTypeLastCell”.
- بعد ذلك، قم بتعيين هذا السطر الخاص من رمز الخلية على المتغير الذي حددته في الخطوة الأولى.
- من هنا تحتاج إلى استخدام مربع رسالة VBA للحصول على عنوان الخلية المرتجعة بواسطة طريقة الخلية الخاصة.
- في النهاية، استخدم خاصية العنوان مع المتغير للحصول على عنوان خلية النوع الأخير.
هنا هو الرمز الكامل.
Dim myRng As Range Set myRng = Range("A1:A10").SpecialCells(xlCellTypeLastCell) MsgBox myRng.Address
الآن عند تشغيل هذا الرمز سيظهر لك مربع رسالة بعنوان الخلية التي تم استخدامها (كتابتها) آخر مرة. لذا، في حالتي استخدمت الخلية A10 ونفس الشيء الذي تلقيته في مربع الرسالة.
حدد الخلايا التي تحتوي على ملاحظات
في Excel، أصبحت “التعليقات” القديمة الآن “ملاحظات”. عند كتابة التعليمات البرمجية لتحديد التعليقات، فإنه سيتم تحديد الملاحظات الموجودة لديك ضمن النطاق المحدد. خذ بعين الاعتبار التعليمة البرمجية التالية.
Dim myRng As Range Set myRng = _ Range("A1:A10").SpecialCells(xlCellTypeComments) myRng.Select
استخدم كلتا الوسيطتين
كما قلت سابقًا، لديك وسيطتان لطريقة SpecialCells. لنرى الآن كيف يمكنك استخدام الوسيطتين لتحديد الخلايا التي تحتوي على صيغة، وأن القيمة التي ترجعها الصيغة هي قيمة منطقية.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(xlCellTypeFormulas, xlLogical) myRng.Select
الآن عندما أقوم بتشغيل الكود أعلاه فإنه يحدد الخلايا من النطاق A1 إلى A11 حيث لدي صيغ وقيمة منطقية.
حدد الخلايا ذات التنسيق الشرطي
Range("A1:A11").SpecialCells(xlCellTypeSameFormatConditions) Range("A1:A11").SpecialCells(xlCellTypeAllFormatConditions)
حدد الخلايا المرئية
ويمكنك أيضًا تحديد المرئي باستخدام الثابت “xlCellTypeVisible”. خذ بعين الاعتبار التعليمة البرمجية التالية.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(xlCellTypeVisible) myRng.Select
أو يمكنك أيضًا استخدام “12” كقيمة الوسيطة.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(12) myRng.Select
الخلايا مع التحقق من صحة البيانات
Range("A1:A11").SpecialCells(xlCellTypeAllValidation) Range("A1:A11").SpecialCells(xlCellTypeSameValidation)