UsedRange - Localizar ú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.
1 | MsgBox ActiveSheet.UsedRange.Rows.Count |
Você tem que fazer 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:
123456789 | Sub LastRow ()Dim LastRow As IntegerLastRow = ActiveSheet.UsedRange.Rows.CountMsgBox LastRowEnd Sub |
123456789 | Sub LastCol ()Dim LastCol As IntegerLastCol = ActiveSheet.UsedRange.Col.CountMsgBox LastColEnd Sub |
Encontrar a primeira célula vazia
Usando o VBA, você pode precisar gravar 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 por você.
Neste exemplo, o código escreverá “FirstEmpty” na primeira célula vazia na coluna “d”
1234 | Public Sub AfterLast ()ActiveSheet.Range ("d" & ActiveSheet.Rows.Count) .End (xlUp) .Offset (1, 0) .Value = "FirstEmpty"End Sub |
Contar 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.
1 | MsgBox ActiveSheet.UsedRange.Columns.Count |
Última célula usada - problemas
Quando preciso For… Next… Loop por uma coluna inteira, geralmente uso ActiveSheet.UsedRange.Rows.Count para encontrar onde parar. Sempre tive sorte com essa abordagem.
Também estou ciente de que, ocasionalmente, o Excel pensa que a última linha existe em algum lugar, mas a linha está realmente vazia. Eu vi isso algumas vezes depois de importar dados. Além da tecnologia:
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.