VBA – Região Atual
In this Article
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.
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.
Se removermos o conteúdo das células adjacentes e executarmos novamente a rotina, o seguinte será selecionado como a região atual.
No entanto, se removermos ainda mais dados, poderemos acabar com o exemplo abaixo para a região atual da célula E11.
Colocando as informações de volta em D8, teremos o seguinte resultado:
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.
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!
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