É 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.
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
MsgBox "O número de colunas da planilha é: " & Columns.Count
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 + ( ou ou ou ).
Range("A1").End(xlDown).Select
'Range("A1").End([direção]).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:
MsgBox "A última linha com dados é a de número: " & Cells(Rows.Count, 1).End(xlUp).Row
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
Exercícios Sugeridos
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