VBA Named Range

Intervalo Nomeado Excel VBA

Quando trabalhamos com uma grande quantidade de dados para evitar a referência a uma célula ou intervalos de células em particular, geralmente criamos intervalos nomeados e isso nos permite fazer referência ao intervalo de células necessário por meio do intervalo nomeado. No VBA, para criar um intervalo de nomes, temos Adicionar Função de Nome.

Podemos selecionar uma célula ou intervalo de células e dar um nome a ele. Depois de nomear as células, podemos nos referir a essas células inserindo os nomes definidos em vez das referências usuais de linha ou coluna.

Você pode baixar este modelo Excel de intervalo nomeado VBA aqui - Modelo Excel de intervalo nomeado VBA

Como criar intervalos nomeados?

É um trabalho de caminhada no parque para criar intervalos nomeados. A primeira coisa que precisamos fazer é identificar as células que queremos criar intervalo de nomes no Excel.

Para um exemplo, veja a imagem abaixo.

Para chegar ao lucro na célula B4, apliquei a fórmula B2 - B3.

Isso é algo comum que todo mundo faz. Mas que tal criar os Nomes e aplicar a fórmula algo como “Vendas” - “Custo”.

Coloque o cursor na célula B2> caixa Ir para Nome e chame-a de Vendas.

Coloque um cursor na célula B3 e chame-o de Custo.

Agora, na coluna de lucro, podemos referir esses nomes em vez de referências de células.

Isso é o básico sobre intervalos nomeados.

Como criar intervalos nomeados usando código VBA?

Exemplo 1

Você já pensou em criar um intervalo nomeado usando o código VBA?

Siga as etapas abaixo para criar um intervalo nomeado.

Etapa 1: Defina a variável como “Faixa”.

Código:

 Sub NamedRanges_Example () Dim Rng As Range End Sub 

Passo 2: Agora defina a variável “Rng” para células específicas que você deseja nomear.

Código:

 Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") End Sub 

Etapa 3: Usando a propriedade de nomes de acesso ao objeto “ThisWorkbook”.

Temos tantos parâmetros com o método Names.Add . Abaixo estão as explicações.

[Nome]: Nome não é nada, mas qual é o nome que gostaríamos de dar ao intervalo que especificamos.

Ao nomear a célula, ela não deve conter nenhum caractere especial, exceto o símbolo de sublinhado (_) e também não deve conter caracteres de espaço, não deve começar com valores numéricos.

[Refere-se a]: Isso nada mais é do que o intervalo de células ao qual estamos nos referindo.

Acho que esses dois parâmetros são bons o suficiente para iniciar o processo.

Etapa 4: No nome, o argumento insere o nome que você deseja dar. Eu nomeei como “SalesNumbers”.

Código:

 Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") ThisWorkbook.Names.Add Name: = "SalesNumbers" End Sub 

Etapa 5: no argumento refere-se a, insira o intervalo de células que desejamos criar. Em nome da variável “Rng”, já atribuímos o intervalo de células de A2 a A7, portanto, forneça o argumento como “Rng”.

Código:

 Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") ThisWorkbook.Names.Add Name: = "SalesNumbers", RefersTo: = Rng End Sub 

Ok, este código irá criar um intervalo nomeado para células de A2 a A7.

Agora, na planilha, criei alguns números de A2 a A7.

Na célula A8, quero ter o total dos números de células acima. Usando um intervalo nomeado, criaremos uma SOMA desses números.

Código:

 Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") ThisWorkbook.Names.Add Name: = "SalesNumbers", RefersTo: = Rng Range ("A8"). Value = WorksheetFunction.Sum (Range ( "SalesNumbers")) End Sub 

Se você executar este código manualmente ou pressionando a tecla f5, obteremos o total de um intervalo nomeado na célula A8.

Estes são os fatos básicos que você deve saber sobre “Named Ranges”.

Exemplo # 2

No VBA usando o objeto RANGE, podemos nos referir às células. Da mesma forma, também podemos nos referir a essas células usando intervalos nomeados.

Por exemplo, no exemplo acima, nomeamos a célula B2 como “Vendas” e B3 como “Custo” .

Ao usar referência de célula real, nos referimos a essas células assim.

Código:

 Sub NamedRanges () Intervalo ("B2"). Selecione 'Isso selecionará o intervalo de células B2 ("B3"). Selecione' Isso selecionará a célula B3 End Sub 

Uma vez que já criamos essas células, podemos nos referir a usar esses nomes como a seguir.

Código:

 Sub NamedRanges () Intervalo ("Vendas"). Selecione 'Isso selecionará a célula nomeada como "Vendas", ou seja, intervalo de células B2 ("Custo"). Selecione' Isso selecionará a célula nomeada como "Custo", ou seja, célula B3 End Sub 

Assim, usando Named Ranges, podemos fazer uso dessas células. Usando esses nomes, podemos calcular o valor do lucro na célula B4. Para isso, nomeie a célula B4 como Lucro.

Agora, no editor VBA, aplique este código.

Código:

 Sub NamedRanges_Example1 () Faixa ("Lucro"). Valor = Faixa ("Vendas") - Faixa ("Custo") End Sub 

This will calculate the profit amount in the cell named “Profit”.