Подтвердить что ты не робот

Как вы получаете Range для возвращения своего имени?

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

В приведенном выше коде будет отображаться фактический адрес диапазона, а не имя. Почему?
Как получить именованный диапазон, чтобы вернуть его имя?

4b9b3361

Ответ 1

Для диапазона, имя не является строкой, это объект Name, который затем принимает свойство Name для получения строки:

MsgBox sampleRange.Name.Name

Ответ 2

sampleRange.Name = "Range1", чтобы назвать диапазон, является плохой практикой

Он работает только потому, что Name (строка, содержащая "Имя" ) является свойством по умолчанию для имени.

Гораздо лучше sampleRange.Name.Name = "Range1"

Никогда не рекомендуется использовать свойство по умолчанию, не ссылаясь на него явно.

Хорошее программирование точно контролирует среду, явно ссылаясь на требуемое свойство.

Устраняет двусмысленность, создавая проблему здесь. Устраняет проблему, созданную, если свойство свойства по умолчанию изменено в будущем обновлении.