Как вы получите диапазон, чтобы вернуть его имя?

StackOverflow https://stackoverflow.com/questions/3630496

  •  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"

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top