Objeto Range em Excel VBA

Antes de mais nada, aqui você vai encontrar um tutorial completo sobre Range no Excel VBA, vamos abordar tudo como criar um intervalo e utilizar esse objeto.

Nesse sentido, um intervalo (Range), pode ser uma célula, uma linha, uma coluna, ou um grupo de qualquer item.

PUBLICIDADE

Embora, o Objeto Range seja um dos mais utilizados no VBA em Excel, é importante que você conheça como fazer.

Logo depois, no decorrer desse artigo, você vai aprender através de dois exemplos como fazer referências a intervalos. Por último, vamos aprender a fazer referência a intervalos.

O Objeto Range em VBA: O que é?

O objeto range é uma propriedade do objeto Worksheet. Embora, isso signifique que ele precisa de uma planilha ativa. Ou de uma outra maneira, referenciar uma planilha.

Agora veja, dois exemplos que são a mesma coisa, caso a planilha Worksheets(1) esteja ativa:

  • Range(“A1”)
  • Worksheets(1).Range(“A1”)

Antes que, para encontrar uma Worksheet, é importante conhecer sua hierarquia.

Hierarquia dos objetos do Excel em VBA

Uma Hierarquia em VBA é composta pela seguinte ordem:

PUBLICIDADE
  • Application -> Workbook -> Worksheet -> Range

Maneiras de Referir uma Range

Juntamente, após conhecer a Hierarquia de objetos, vamos demonstrar como uma Range(“A1”) que é o modelo mais comum de encontrar, pois vem junto com o Gravador de Macros.

No entanto, ela pode ser referenciada de outras maneiras, porém com o mesmo significado.

  1. Range (“A1”)
  2. [A1]
  3. Range(“A1”).Range(“B1”)
  4. Cells(1,1)
  5. Range(“A1”).Offset(4,3)
  6. Range(“IntervaloDefinido”) ‘Considerando que A1 foi renomeado por IntervaloDefinido

Sintaxe para Referenciar um Intervalo

No entanto, a propriedade Range é composta por duas sintaxes. Embora, ambas apresentam o mesmo resultado, é possível demonstrar de duas maneiras diferentes.

Suponhamos que precisamos referenciar um intervalo de “A1:C10”, nesse caso, temos uma seleção conforme abaixo.

range-excel-vba

Embora, para realizar tal seleção, seja necessário apenas selecionar o intervalo com o mouse, através do VBA existem duas maneiras de realizar a mesma seleção.

Intervalo Retangular Principal

  • Range(“A1:C10”).Select

Intervalo Retangular Alternativo

  • Range(“A1″,”C10”).Select

Com isso, embora sejam duas variações diferentes, ambas realizam a seleção do intervalo, demonstrado.

Intervalo de Range em VBA Nomeado

Por outro lado, podemos renomear uma seleção alternativa, e inserir um nome variável.

Por exemplo, selecionamos com o mouse o intervalo “A1:C10” e após isso, vamos definir um nome como IntervaloRange.

PUBLICIDADE
intervalo-range-excel-vba-nomeado

Após isso, podemos definir uma Range utilizando o nome definido para a seleção, como a seguir:

  • Range(“IntervaloRange”).Select

Portanto, para realizar a seleção de Range, como podemos ver existem inúmeras oportunidades através do Excel VBA, depende de você escolher a melhor e que mais facilite o seu trabalho.

Referenciar Range em outra Planilha com VBA

Contudo, alternar entre planilhas pode deixar sua planilha um pouco lenta quando se utiliza o VBA.

No entanto, para evitar que isso ocorra, podemos utilizar a Range vinculada com uma Worksheets, para referenciar uma planilha que não esteja ativa, como por exemplo.

Referenciar na mesma Workbook

  • Worksheets(“Planilha1”).Range(“A1”)

Em resumo, essa linha faz referência a Célula A1 da Planilha1, independente se você estiver com a Planilha2, 3 ativa.

Referenciar uma Workbook diferente

  • Workbooks(“Plan_Studio_Excel.xlsm”).Worksheets(“Planilha1”).Range( “A1”)

Por outro lado, se estamos com mais de uma Workbook ativa, podemos alternar entre elas com o código acima, sem que sua planilha permaneça lenta.

Copiar e Colar com VBA

Uma das funções mais utilizadas no Excel VBA seria o Copiar e Colar, que se trata de copiar valores de um Intervalo X e colar no Intervalo Y.

Com uso do VBA, tornamos esse método bastante simplifcado.

PUBLICIDADE

Portanto, existem dois métodos de realizar a ação, primeiro vamos demonstrar a maneira comum, que pode ser evitada, e após isso a maneira ideal.

Exemplo 1:

Em resumo, vamos copiar os Dados de A1 e B1, e colar na Célula D5 e E5.

Range ("A1:B1").Select
Selection.Copy

Range ("D5").Select
ActiveSheet.Paste

Como resultado, teremos.

copiar-e-colar-no-excel-vba

Por outro lado, podemos simplificar em apenas uma linha.

Exemplo 2:

Aqui se encontra a maneira ideal e mais simplificada para realizar o mesmo procedimento.

Range("D5:E5").Value = Range("A1:B1").Value

Com isso, vamos replicar a mesma atividade de antes, de uma maneira bem simplificada, sem provocar lentidão.

Apagar com VBA utilizando uma Range

Por fim, conheçam as duas maneiras de limpar as informações utilizando o VBA, com a seleção de uma Range.

Range("A1:B1").ClearContents

Por outro lado, podemos realizar a mesma seleção utilizando:

PUBLICIDADE
Range("A1").Value = ""

Portanto, chegamos ao fim de nosso passo a passo sobre Range no Excel em VBA. Utilizamos como referência para esse artigo o Livro: Excel 2016 VBA e Macros do Auto: Bill Jelen.

Compartilhe
Rafael Schreiner

Rafael Schreiner

Artigos: 348