Как вы получите диапазон, чтобы вернуть его имя?
-
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"
Никогда не рекомендуется использовать свойство по умолчанию, не ссылаясь на нее явно.
Хорошее программирование точно контролирует окружающую среду, обращаясь явно связанным с необходимой собственностью.
Удаляет двусмысленность как созданная проблема здесь. Устраняет проблему, созданную, если свойство по умолчанию изменяется в будущем обновлении.