VBA Última Linha ou Coluna com Dados


É importante sabermos gerar um código que identifique o endereço da última linha ou coluna com dados de uma planilha. É útil como um contador final em Loops e como referência para intervalos.

VBA Count

A propriedade .Count, quando utilizada com objeto Range, retorna o número de células de um determinado intervalo. (independente se estiverem preenchidas ou não).

    MsgBox Range("A1:B7").Count 'Retornará 14

Caso queira saber o número de colunas ou o número de linhas de um determinado intervalo, é possível utilizar a propriedade Columns (para colunas) ou a propriedade Rows (para linhas) em conjunto com a propriedade Count.

    MsgBox Range("A1:B7").Rows.Count    'Retornará 7
    MsgBox Range("A1:B7").Columns.Count 'Retornará 2

A propriedade .Count retorna o números de objetos de determinada coleção.

Caso queira saber o número de linhas ou colunas da planilha, é possível utilizar o Rows e o Columns sem especificar um intervalo com o Range:

    MsgBox "O número de linhas da planilha é: " & Rows.Count
Total de Linhas
    MsgBox "O número de colunas da planilha é: " & Columns.Count
Total de Colunas

VBA End

Apesar da propriedade Count ser muito útil, ela retorna apenas a quantidade disponível de elementos, mesmo que eles estejam sem valores.

A propriedade End, utilizada em conjunto com o objeto Range, retornará a última célula com conteúdo para uma dada direção, equivale a pressionar a tecla Ctrl + ( Seta para esquerda ou Seta para cima ou Seta para baixo ou Seta para direita).

    Range("A1").End(xlDown).Select
    'Range("A1").End([direção]).Select
End Select

Ao utilizar End é necessário definir seu argumento, direção: xlUp, xlToRight, xlDown, xlToLeft.

É possível também ter como referência o fim da planilha, facilitando a utilização do argumento xlUp:

End Exemplo
    MsgBox "A última linha com dados é a de número: " & Cells(Rows.Count, 1).End(xlUp).Row
MsgBox End(xlUp)

VBA Última Célula Preenchida

Repare que há algumas maneiras de se determinar a última linha ou coluna com dados de uma planilha:

    Range("A1").End(xlDown).Row
    'Determina a última linha com dados da primeira coluna

    Cells(Rows.Count, 1).End(xlUp).Row
    'Determina a última linha com dados da primeira coluna

    Range("A1").End(xlToRight).Column
    'Determina a última coluna com dados da primeira linha

    Cells(1,Columns.Count).End(xlToLeft).Column
    'Determina a última coluna com dados da primeira linha

Exibir Tópico Avançado


Fixando o Aprendizado

Exercícios Sugeridos

Concatenar Valores Entre Abas Select Case Colunas para Linhas Soma Restrita If Then Inserir Células Texto para Colunas


SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.

Excel ® é uma marca registrada da Microsoft Corporation.

© 2024 SuperExcelVBA | SOBRE

Protected by Copyscape