Como você consegue um intervalo para retornar seu nome?
-
26-09-2019 - |
Pergunta
Dim sampleRange as Range
Set sampleRange = Worksheet.Range(Cells(1,1),Cells(1,4)
sampleRange.Name = "Range1"
MsgBox sampleRange.Name
O código acima mostrará o endereço real do intervalo, não o nome. Por quê?
Como faço para obter um intervalo nomeado para devolver seu nome?
Solução
Para um intervalo, o nome não é uma string, é um objeto de nome, que você pega a propriedade de nome para obter a string:
MsgBox sampleRange.Name.Name
Outras dicas
sampleRange.name = "range1" para nomear o intervalo é uma prática ruim
Ele funciona apenas porque o nome (a sequência que contém "o nome") é a propriedade padrão do nome.
Muito melhor amosplerange.name.name = "range1"
Nunca é uma boa prática usar a propriedade padrão sem se referir a ela explicitamente.
A boa programação controla exatamente o ambiente, referindo -se explicitamente à propriedade necessária.
Remove a ambiguidade como criou o problema aqui. Elimina o problema criado se a propriedade padrão for alterada em uma atualização futura.