VBA – Região Atual

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 11, 2023

Este tutorial explicará como usar a Current Region no VBA.

A propriedade CurrentRegion (Região Atual) no VBA é uma forma de selecionar todas as células contidas em um intervalo com o qual você queira trabalhar. Desde que as células dentro do intervalo sejam todas consecutivas ou estejam “tocando” umas nas outras, a CurrentRegion selecionará todas as células da região.

Sintaxe de CurrentRegion

A sintaxe é muito simples:

Range("E11").CurrentRegion.Select

em que você especifica a célula cuja região atual deseja selecionar e, em seguida, usa a propriedade CurrentRegion.Select para selecionar o intervalo de células.

Obter a Região Atual

Considere a planilha a seguir.

base dados current region

 

O seguinte Subprocedimento selecionaria todas as células da tabela do Excel.

Sub EncontrarRegiaoAtual()
 Dim rng As Range
'defina o intervalo como sendo a célula E11
 Set rng = Range("E11")
'selecione a região atual
 rng.CurrentRegion.Select
End Sub

Se executarmos a rotina, todas as células da CurrentRegion da célula E11 serão selecionadas.

regiao selecionada

Se removermos o conteúdo das células adjacentes e executarmos novamente a rotina, o seguinte será selecionado como a região atual.

regiao menor selecionada

No entanto, se removermos ainda mais dados, poderemos acabar com o exemplo abaixo para a região atual da célula E11.

regiao ainda menor

Colocando as informações de volta em D8, teremos o seguinte resultado:

devolvendo valor da celula

O CurrentRegion, portanto, retorna outro objeto de intervalo definido pela menor combinação de colunas e linhas ocupadas que circundam o intervalo que você forneceu.

Contagem de Linhas e Colunas na Região Atual

Podemos usar CurrentRegion para contar as linhas e colunas.

Sub EncontrarRegiaoAtual()
  Dim rng As Range
  Dim iRw As Integer
  Dim iCol As Integer
'definir o intervalo
  Set rng = Range("E11")
'contar as linhas
  iRw = rng.CurrentRegion.Rows.Count
'contar as colunas
  iCol = rng.CurrentRegion.Columns.Count
'mostrar o resultado em uma caixa de mensagem
  MsgBox ("Nós temos " & iRw & " linha e " & iCol & " colunas em nossa região atual")
End Sub

Se executarmos o procedimento, a caixa de mensagem a seguir será exibida.

contar linhas regiao atual

Limpando a Região Atual

Também podemos usar a propriedade current region para limpar o intervalo de células.

Sub LimparRegiaoAtual()
 Dim rng As Range
'definir o intervalo
 Set rng = Range("E11")
 rng.CurrentRegion.Clear
End Sub

Atribuição da Região Atual a uma Variável

Também podemos atribuir toda a região atual a uma variável de intervalo e, em seguida, usar essa variável de intervalo para manipular as células – seja formatando as células, classificando as células etc.

Sub AtribuirRegiaoAtualParaVariavel()
  Dim rng As Range
'definir o intervalo como a região atual de E11
  Set rng = Range("E11").CurrentRegion
'colorir o plano de fundo e o texto
  rng.Interior.Pattern = xlSolid
  rng.Interior.Color = 65535
  rng.Font.Bold = True
  rng.Font.Color = -16776961
End Sub

Se executarmos o procedimento acima, teremos uma planilha como a mostrada abaixo!

formatar celulas regiao atual

Obter as Células Inicial e Final na Região Atual

Com um código um pouco mais complicado, podemos obter a primeira célula e a última célula em uma Current Region.

Sub ObterCelulasInicialFinal()
   Dim rng As Range
   Dim iRw As Integer
   Dim iCol As Integer
   Dim iColInicio, iColFim, iRwInicio, iRwFim As String
'definir a variável de intervalo como a região atual de E11
   Set rng = Range("E11").CurrentRegion
'definir a coluna inicial do intervalo
   iColInicio = rng.Column
'obter a coluna final do intervalo
   iColFim = iColInicio + (rng.Columns.Count - 1)
'obter a linha inicial do intervalo
   iRwInicio = rng.Row
'obter a linha final do intervalo
   iRwFim = iRwInicio + (rng.Rows.Count - 1)
'exibir o endereço das linhas e colunas inicial e final em uma caixa de mensagem
   MsgBox ("O intervalo começa em " & Cells(iRwInicio, iColInicio).Address & " e termina em " & Cells(iRwFim, iColFim).Address)
End Sub

Quando executarmos o código acima, a seguinte caixa de mensagem será exibida

caixa mensagem regiao atual

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA