سؤال

Dim sampleRange as Range
Set sampleRange = Worksheet.Range(Cells(1,1),Cells(1,4)
sampleRange.Name = "Range1"
MsgBox sampleRange.Name

سوف يعرض الرمز أعلاه العنوان الفعلي للنطاق ، وليس الاسم. لماذا ا؟
كيف أحصل على نطاق مسمى لإرجاع اسمه؟

هل كانت مفيدة؟

المحلول

بالنسبة لمجموعة ، فإن الاسم ليس سلسلة ، فهو كائن اسم ، ثم تأخذ خاصية الاسم للحصول على السلسلة:

MsgBox sampleRange.Name.Name

نصائح أخرى

samplerange.name = "Range1" لتسمية النطاق هو ممارسة سيئة

إنه يعمل فقط لأن الاسم (السلسلة التي تحتوي على "الاسم") هي الخاصية الافتراضية للاسم.

أفضل بكثير samplerange.name.name = "Range1"

ليس من الممارسات الجيدة استخدام الخاصية الافتراضية دون الإشارة إليها بشكل صريح.

البرمجة الجيدة تتحكم بالضبط في البيئة من خلال الإشارة صراحة إلى العقار المطلوب.

يزيل الغموض كما خلق القضية هنا. يلغي المشكلة التي تم إنشاؤها إذا تم تغيير الخاصية الافتراضية في تحديث مستقبلي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top