Propriedade Range.End (xlDown, xlUp, xlToRight, xlToLeft) do VBA
In this Article
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, xlToRight e xlUp.
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.