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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top