Este tutorial explicará como usar a região atual no VBA.
o CurrentRegion propriedade no VBA é uma maneira de selecionar todas as células contidas em um intervalo com o qual você pode querer trabalhar. Contanto que as células dentro do intervalo sejam todas consecutivas ou "tocando-se" umas nas outras, o CurrentRegion irá selecionar todas as células da região.
Sintaxe CurrentRegion
A sintaxe é muito simples:
1 | Intervalo ("E11"). CurrentRegion.Select |
onde você especificaria a célula cuja região atual deseja selecionar e, em seguida, use o CurrentRegion.Select propriedade para selecionar o intervalo de células.
Obtendo a Região Atual
Considere a seguinte planilha.
o seguinte subprocedimento selecionaria todas as células do banco de dados
1234567 | Sub FindCurrentRegion ()Dim rng como alcance'defina o intervalo como Célula E11Definir rng = intervalo ("E11")'selecione a região atualrng.CurrentRegion.SelectEnd Sub |
Se executarmos a rotina, todas as células do CurrentRegion da célula E11 será selecionado.
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, podemos terminar com o exemplo abaixo para a região atual da célula E11.
Colocando a confirmação de informações no D13, terminamos com o seguinte:
o CurrentRegion portanto retorna outro faixa objeto definido pela menor combinação de colunas e linhas ocupadas que circundam o intervalo que você forneceu.
Contando as linhas e colunas na região atual
Podemos usar CurrentRegion para contar as linhas e colunas.
12345678910111213 | Sub FindCurrentRegion ()Dim rng como alcanceDim iRw As IntegerDim iCol As Integer'definir o alcanceDefinir rng = intervalo ("E11")'contar as linhasiRw = rng.CurrentRegion.Rows.Count'contar as colunasiCol = rng.CurrentRegion.Columns.Count'mostra o resultado em uma caixa de mensagemMsgBox ("Temos" linhas & iRw & "e colunas" & iCol & "em nossa região atual")End Sub |
Se executarmos o procedimento, a seguinte caixa de mensagem aparecerá.
Limpando a região atual
Também podemos usar a propriedade da região atual para limpar o intervalo de células.
123456 | Sub ClearCurrentRegion ()Dim rng como alcance'definir o alcanceDefinir rng = intervalo ("E11")rng.CurrentRegion.ClearEnd Sub |
Atribuindo a 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 …
12345678910 | Sub AssignCurrentRegionToVariable ()Dim rng como alcance'defina o intervalo como a região atual de E11Defina rng = Range ("E11"). CurrentRegion'colorir o fundo e o textorng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Truerng.Font.Color = -16776961End Sub |
Se executarmos o procedimento acima, terminaremos com uma planilha conforme mostrado abaixo!
Obtendo as células iniciais e finais na região atual
Com um código um pouco mais complicado, podemos obter a primeira e a última célula em uma região atual.
123456789101112131415161718 | Sub GetStartAndEndCells ()Dim rng como alcanceDim iRw As IntegerDim iCol As IntegerDim iColStart, iColEnd, iRwStart, iRwEnd como string'definir a variável de intervalo para ser a região atual de E11Defina rng = Range ("E11"). CurrentRegion'definir a coluna inicial para o intervaloiColStart = rng.Column'obtém a coluna final para o intervaloiColEnd = iColStart + (rng.Columns.Count - 1)'obter a linha inicial para o intervaloiRwStart = rng.Row'obter a linha final para o intervaloiRwEnd = iRwStart + (rng.Rows.Count - 1)'exibe o endereço das linhas e colunas iniciais e finais em uma caixa de mensagemMsgBox ("O intervalo começa em" & Cells (iRwStart, iColStart) .Address & "e termina em" & Cells (iRwEnd, iColEnd) .Address)End Sub |
Quando executamos o código acima, a seguinte caixa de mensagem aparecerá