A obtenção da última linha de uma dada coluna no Excel é facilmente feita com uma Função Definida pelo Utilizador em VBA:
/div>
div>
Visual Basic
1
2
3
4
5
|
Função LastRow(wsName As String, Coluna opcionalCheque As Long = 1) As Long
Dim ws As Worksheet
Set ws = Worksheets(wsName)
LastRow = ws.Células(ws.Fileiras.Count, columnToCheck).End(xlUp).Fila
Função Final
|
Há duas outras fórmulas, que obteriam a última célula usada numa dada fila, dependendo se é uma numérica ou string:
div>
Visual Basic
1
2
|
=IFERROR(MATCH(E1+99),A:A),0)
=IFERROR(MATCH(“zzz”,A:A),0)
|
A primeira recebe a última linha numérica usada e a segunda devolve a última linha não numérica usada. Para a última linha numérica/não-numérica usada, uma união destas poderia ser usada:
div>
Visual Basic
1
|
No entanto, existe um pequeno problema – quando a última célula é um erro, a fórmula MAX() devolve não a última. No exemplo abaixo, retorna 6 e não 7 :
Assim, as quatro fórmulas finais, que funcionam sempre para as últimas “coisas”, são as seguintes:
Para obter as linhas/colunas:
Última linha da coluna A
Visual Basic
1
|
Lasta Coluna da primeira linha
Visual Basic
1
|
Para obter os valores
Último valor de linha da coluna A
/div>
/div>
1
|
=LOOKUP(2,1/(NÃO(ISBLANK(A.):A))),A:A)
|
Valor da última coluna da primeira linha
/div>
/div>
1
|
=LOOKUP(2,1/(NÃO(ISBLANK(1:1))),1:1)
|
GitHub last things