VBA Used Range – Contagem do Número de Linhas ou Colunas Usadas
In this Article
UsedRange – Localizar a Última Célula, Coluna ou Linha Usada
O código a seguir retornará uma caixa de mensagem indicando o número total de linhas usadas em uma planilha. As linhas vazias são consideradas usadas se os dados seguirem a linha vazia.
MsgBox ActiveSheet.UsedRange.Rows.Count
Você precisa executar um loop em uma planilha, mas não sabe onde os dados param? ActiveSheet.UsedRange.Rows.Count pode ajudar.
Coloque isso em um módulo:
Sub UltmaLinha()
Dim UltimaLinha As Integer
UltimaLinha = ActiveSheet.UsedRange.Rows.Count
MsgBox UltimaLinha
End Sub
Sub UltimaColuna()
Dim UltimaColuna As Integer
UltimaColuna= ActiveSheet.UsedRange.Columns.Count
MsgBox UltimaColuna
End Sub
Localizar a Primeira Célula Vazia
Ao usar o VBA, talvez você precise escrever na primeira célula vazia ou após a última linha usada em uma coluna. Não há necessidade de fazer um loop para encontrar isso, o código a seguir faz isso para você.
Neste exemplo, o código escreverá “PrimeiraVazia” na primeira célula vazia da coluna “d”
Public Sub DepoisUltima()
ActiveSheet.Range("d" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Value = "PrimeiraVazia"
End Sub
Contagem de Colunas Usadas na Planilha
O código a seguir retornará em uma caixa de mensagem o número total de colunas usadas em uma planilha. As colunas vazias são consideradas usadas se os dados seguirem a coluna vazia.
MsgBox ActiveSheet.UsedRange.Columns.Count
Última Célula Usada – Problemas
Quando preciso fazer For…Next..Loop em uma coluna inteira, geralmente uso ActiveSheet.UsedRange.Rows.Count para descobrir onde parar. Sempre tive boa sorte com essa abordagem.
Também estou ciente de que, ocasionalmente, o Excel pensa que a última linha existe em algum lugar, mas na verdade a linha está vazia. Já vi isso algumas vezes depois de importar dados. De BeyondTechnology:
O objeto Worksheet UsedRange nem sempre funciona porque o intervalo usado (ou “área suja”) de uma planilha pode ser maior do que a área realmente preenchida com seus registros.