Como criar um intervalo nomeado usando vba?

Para criar um intervalo nomeado usando VBA, você precisa usar a propriedade “Nomes” posteriormente com o método “Adicionar”. No método add você tem argumentos para definir qual nome deseja dar ao intervalo e especificar o endereço do intervalo (certifique-se de usar o cifrão com o endereço para congelar o intervalo).

Crie um intervalo de nomes usando VBA

  1. Defina a pasta de trabalho na qual deseja criar o intervalo nomeado.
  2. Use a propriedade de nomes e adicione um método adicional.
  3. Especifique o nome no argumento “Nome”.
  4. Consulte o intervalo usando o argumento “ReferTo”.
crie um intervalo de nomes usando vba

No exemplo acima, você tem a pasta de trabalho ativa, então usando a propriedade “Nomes” com o método “Adicionar” você define o nome do intervalo, e no final, o endereço do intervalo que deseja usar.

Como eu disse anteriormente, no intervalo de endereços você precisa usar o sinal $ para congelar o endereço. Você também pode usar ThisWorkbook para fazer referência à pasta de trabalho na qual está escrevendo o código ou pode usar para fazer referência a outra pasta de trabalho usando o objeto pasta de trabalho.

VBA para criar intervalo nomeado a partir da seleção

Você também pode usar a propriedade de seleção para criar um intervalo nomeado a partir da seleção. Considere o seguinte código.

 ActiveSheet.Names.Add Name:="myRangeName", RefersTo:=Selection

E no código a seguir você tem uma caixa de mensagem com a qual pode inserir o nome que deseja dar ao intervalo nomeado.

 Sub vba_named_range() Dim iName As String iName = InputBox("Enter Name for the Selection.") ActiveSheet.Names.Add Name:=iName, RefersTo:=Selection End Sub

Redimensione um intervalo nomeado usando VBA (Dynamic Named Range)

Para redimensionar um intervalo nomeado que já está presente na planilha, você deve usar a propriedade resize e informar ao VBA quantas linhas e colunas deseja expandir do intervalo atual. Considere o código a seguir que expande o intervalo denominado “myRange”, que inicialmente tem a célula A1 como intervalo, mas a redimensiona para a coluna M e a linha 11.

redimensionar um intervalo nomeado
 Sub vba_named_range() Dim iRow As Long Dim iColumn As Long iRow = ActiveSheet.Range("A1").End(xlDown).Row iColumn = ActiveSheet.Range("A1").End(xlToRight).Column ActiveSheet.Range("myRange") _ .Resize(iRow, iColumn).Name = "myRange" End Sub

Dividi isso em três partes para deixar isso claro para você, agora vamos ao que interessa.

dividido em três partes
  • Na PRIMEIRA parte você tem variáveis declaradas para armazenar as linhas e número de colunas.
  • Na SEGUNDA parte, você usou o método “END” com o intervalo para obter a última linha e coluna e armazená-las para variáveis.
  • Na Parte TRÊS, você usou a propriedade Resize com o intervalo denominado “myRange”. E depois disso o número da linha e da coluna que você tem nas variáveis.
variáveis declaradas para armazenar linhas

Quando você executa esse código, ele redimensiona o intervalo antigo com base nos dados que você possui e o torna um intervalo nomeado dinâmico. Sempre que precisar atualizá-lo, você pode executar o código e redimensionar o intervalo nomeado existente.

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *