كيف تحصل على نطاق لإرجاع اسمه؟
-
26-09-2019 - |
سؤال
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"
ليس من الممارسات الجيدة استخدام الخاصية الافتراضية دون الإشارة إليها بشكل صريح.
البرمجة الجيدة تتحكم بالضبط في البيئة من خلال الإشارة صراحة إلى العقار المطلوب.
يزيل الغموض كما خلق القضية هنا. يلغي المشكلة التي تم إنشاؤها إذا تم تغيير الخاصية الافتراضية في تحديث مستقبلي.
لا تنتمي إلى StackOverflow