Faixa de Variável VBA

Variável Excel VBA no intervalo

Variáveis ​​são o coração e a alma de qualquer grande projeto de VBA, já que as variáveis ​​são o coração e a alma, então o tipo de tipo de dados que atribuímos a elas também é um fator muito importante a esse respeito. Em nossos muitos artigos anteriores, discutimos muitas vezes sobre variáveis ​​e sua importância de tipo de dados. Uma dessas variáveis ​​e tipo de dados é “Variável de intervalo”, neste artigo dedicado especial, forneceremos um guia completo sobre “Variável de intervalo” no Excel VBA.

O que é variável de intervalo no Excel VBA?

Como todas as outras variáveis ​​Range no VBA, a variável também é uma variável, mas é uma “Variável de objeto” que usamos para definir a referência do intervalo específico de células.

Como qualquer outra variável, podemos dar qualquer nome à variável, mas o tipo de dados que atribuímos a ela deve ser um “intervalo”. Uma vez que o tipo de dados atribuído à variável se torna uma “Variável de objeto” e ao contrário de outra variável, não podemos começar a usar a variável antes de definirmos a referência de objetos no caso de variáveis ​​de objeto.

Então, depois de declarar a variável, precisamos usar a palavra-chave “SET” para definir a referência do objeto, ou seja, objeto Range neste caso.

Ok, agora veremos alguns dos exemplos de variáveis ​​de intervalo do VBA do Excel de forma prática.

Exemplos de variável de intervalo no Excel VBA

Você pode baixar este modelo VBA Variable Range Excel aqui - VBA Variable Range Excel Template

Por exemplo, suponha que você deseja selecionar o intervalo de células de A2 a B10 para a imagem de captura de tela abaixo.

Para selecionar este intervalo de células mencionado enquanto temos o objeto RANGE e dentro do objeto intervalo, mencionamos o endereço da célula entre aspas duplas.

Código:

 Sub Range_Variable_Example () Range ("A2: B10") End Sub 

Uma vez que o intervalo de células é mencionado usando o objeto RANGE, se você colocar um ponto, veríamos todas as propriedades e métodos associados a este objeto intervalo.

Código:

Sub Range_Variable_Example () Intervalo ("A2: B10"). End Sub

Como precisamos selecionar as células mencionadas, basta escolher o método “Selecionar” na lista do IntelliSense.

Código:

 Sub Range_Variable_Example () Range ("A2: B10"). Selecione End Sub 

Execute o código e ele selecionará as células mencionadas.

Isso é óbvio, não é, mas imagine o cenário de usar o mesmo intervalo no projeto VBA longo, digamos, cem vezes, escrever o mesmo código de “Range (“ A2: A10 ”)” 100 vezes levará algum tempo, mas em vez disso iremos declarar a variável e atribuir o tipo de dados como objeto “Range”.

Ok, vamos dar seu próprio nome a uma variável e atribuir o tipo de dados como “Range”.

Além de “Variáveis ​​de objeto”, podemos começar a usar as variáveis ​​por seus nomes, mas no caso de “Variáveis ​​de objeto”, precisamos definir a referência.

Por exemplo, neste caso, nosso objeto variável (Rng) é intervalo, portanto, precisamos definir a referência à qual a palavra “Rng” se referirá. Para definir a referência, precisamos usar a palavra-chave “Set”.

Agora, a variável “Rng” refere-se ao intervalo de células de A2 a B10, em vez de escrever “Range (“ A2: B10 ”))” toda vez que podemos simplesmente escrever a palavra “Rng” .

Na próxima linha mencione o nome da variável “Rng” e coloque um ponto para ver a mágica.

Como você pode ver acima, podemos ver todas as propriedades e métodos do objeto range como o anterior.

Torne a variável dinâmica

Agora sabemos como definir a referência para o intervalo de células, mas uma vez que mencionamos o intervalo de células que adere a essas células apenas, qualquer adição ou exclusão de células não afetará essas células.

Portanto, encontrar o novo intervalo de células após qualquer adição ou exclusão de células torna a variável dinâmica por natureza. Isso é possível encontrando a última linha e coluna usadas.

Para encontrar a última linha e coluna usadas, precisamos definir mais duas variáveis.

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última linha para Entender Dim LC As Long' LC = Última Coluna para Entender End Sub 

Agora, o código abaixo encontrará a última linha e coluna usadas antes de definirmos a referência a uma variável de objeto de intervalo.

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última linha para compreender Dim LC As Long' LC = Última coluna para compreender LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column End Sub 

Agora abra a declaração de palavra-chave “Set”.

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última linha para compreender Dim LC As Long' LC = Última coluna para compreender LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = End Sub 

Ao contrário do método anterior, usamos propriedades VBA CELLS neste momento.

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última linha para compreender Dim LC As Long' LC = Última coluna para compreender LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) End Sub 

Eu mencionei Células (1,1), isto é, refere-se à primeira célula na planilha ativa, mas precisamos da referência do intervalo de dados, então use a propriedade “REDIMENSIONAR” e mencione as variáveis ​​de “última linha e coluna usadas”.

Código:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Última linha para compreender Dim LC As Long' LC = Última coluna para compreender LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) .Resize (LR, LC) End Sub 

Now this will set the latest reference to the range object variable “Rng”. Next, mention the variable name and use the “Select” method.

 Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = Cells(1, 1).Resize(LR, LC) Rng.Select End Sub 

Now I will add a few more lines to my data.

I have added three extra lines of data if I run the code now it should select the latest data range.

Things to Remember

  • The range variable in excel VBA is an object variable.
  • Whenever we use the object variable we need to use the “Set” keyword and set the object reference to the variable.
  • Without setting the reference we cannot use an object variable.