Como faço o end(xlup) no LibreOffice Basic

Uso muito a propriedade end(xlup) no VBA para descobrir a última linha preenchida da planilha. Gostaria de saber como fazer isso no LibreOffice Basic. Abaixo um exemplo da função que uso no VBA

`

Function fUltimaLinhaPlan(PlanRef As String) As Long

fUltimaLinhaPlan = ThisWorkbook.Worksheets(PlanRef).Range("A1048576").End(xlUp).Row

End Function

`

Solução 1

Se quiser pegar a ultima linha da primeira planilha (cujo índice é 0), pode usar a função GetLastUsedRow() existente na biblioteca Tools, módulo Misc

Sub Main
Dim oPlanilha As Object
GlobalScope.BasicLibraries.LoadLibrary("Tools")
oPlanilha= ThisComponent.Sheets(0)
print getLastUsedRow(oPlanilha)
End Sub

A biblioteca Tools está documentada nesta página:

https://help.libreoffice.org/6.1/en-US/text/sbasic/shared/03/lib_tools.html

Solução 2

Acrescente a linha na entrada do seu módulo

Option VBASupport 1

A função tal como está na pergunta, vai funcionar… teste

Complementando, você pode tentar a dica nesta página:

https://help.libreoffice.org/6.1/pt-BR/text/sbasic/shared/03103350.html?DbPAR=BASIC#bm_id3145090

Olá. Testei a solução, mas ela tem um problema. Essa Função retorna a última linha menos 1. Naturalmente, posso fazer alguns ajustes. De qualquer forma, muito obrigado pela ajuda.

A API do LibreOffice retorna índices cuja origem é sempre Zero. Assim tem de adicionar 1 para ter o valor mostrado.

Se a pergunta foi respondida vote a favor e marque o ‘v’ na resposta.