Propriedade Range.End (xlDown, xlUp, xlToRight, xlToLeft) do VBA

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on May 19, 2022

Este tutorial irá lhe mostrar como utilizar a propriedade Range.End no VBA.

Muitas coisas que você faz manualmente na pasta de trabalho ou planilha do Excel podem ser automatizadas no seu código VBA.

Se você tem um intervalo de células não-vazias no Excel, e pressionar Ctrl+Seta para Baixo, o cursor irá se mover para a última célula não-vazia na coluna que você estiver.  De modo similar, se você pressionar Ctrl+Seta para Cima, o cursor moverá para a primeira célula não vazia dessa coluna.  O mesmo aplica-se para uma dada linha usando Ctrl+Seta para Direita ou Ctrl+Seta para Esquerda para ir para o início ou para o fim da linha.  Todas essas combinações de teclas podem ser utilizadas no seu código VBA usando a Função End.

Sintaxe da Propriedade Range End

A propriedade Range.End lhe permite mover-se para um célula específica dentro da Região Atual que você está trabalhando.

expressão.End (Direção)

Onde expressão é o Endereço da Célula (Range) de onde você deseja iniciar, exemplo: Range(“A1”)

End é a propriedade do objeto Range que está sendo controlado.

Direção é a constante do Excel que você pode utilizar.  Há 4 opções disponíveis: xlDown, xlToLeft, xlToRightxlUp.

 

vba end eigenschaft syntax

Movendo para a Última Célula

O procedimento abaixo irá movê-lo para a última célula da Região Atual de células que você está.

Sub IrParaAUltima()
'Vai para a última célula preenchida na região atual de células
   Range("A1").End(xlDown).Select
End Sub

Contando Linhas

O procedimento a seguir lhe permite utilizar a constante xlDown juntamente com a propriedade Range End para contar a quantidade de linhas existentes na sua região atual.

Sub IrParaAUltimaLinhaDoIntervalo()
   Dim linha As Integer
   Range("A1").Select
'Obtém a última linha na região atual
   linha = Range("A1").End(xlDown).Row
'Mostra quantas linhas estão sendo utilizadas (preenchidas)
   MsgBox "A última linhas preenchida neste intervalo é " & linha
End Sub

Já o procedimento abaixo irá contar as colunas no intervalo usando a constante xlToRight.

Sub IrParaAUltimaCelulaDoIntervalo() 
   Dim col As Integer 
   Range("A1").Select 
'Obtém a última coluna na região atual
   col = Range("A1").End(xlToRight).Column
'Mostra quantas colunas estão sendo utilizadas (preenchidas)
   MsgBox "A última coluna utilizada neste intervalo é  " & col
 End Sub

Criando um Range Array

O procedimento abaixo no permite iniciar na primeira célula em um intervalo de células, e então utilizar a propriedade End(xlDown) para encontrar a última célula preenchida do intervalo de células.  Podemos então ReDim (Redimensionar) nosso array com o total de linhas do intervalo, permitindo-nos, assim, percorrer o intervalo de células.

Sub PovoarArray()
'Declara o Array
   Dim strFornecedores() As String
'Declara o inteiro utilizado para contar as linhas
   Dim n As Integer
'Conta a quantidade de linhas
   n = Range("B1", Range("B1").End(xlDown)).Rows.Count
'Inicializa e Povoa o Array
   ReDim strClientes(n)
'Declara o inteiro utilizado no Looping 
   Dim i As Integer
'Povoamento do Array
   For i = 0 To n
     strClientes(i) = Range("B1").Offset(i, 0).Value
   Next i
'Exibe caixa de mensagem com os valores do array
   MsgBox Join(strClientes, vbCrLf)
End Sub

Quando executamos este procedimentos, a caixa de mensagem a seguir é exibida.

vba end array

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