Função com Objeto Range como argumento pega Matriz de Dados do Range

Olá, pessoal. Não sei se minha pergunta foi clara, mas esclareço logo. Criei uma Função no LibreOffice Basic que pesquisa em um intervalo de células um valor com base em até 3 critérios. Ao usar essa função no Calc, o Basic pega o argumento como uma matriz de dados ao invés de um objeto CellRange. Como faço isso? No VBA isso funciona, mas no Basic ocorre isso.

Function ProcuraAvancLinha(Intervalo, ColunaProcurada As Long , RegistroNumero As Long, _ 
Criterio1, ColunaCrit1, _ 
Optional Criterio2, Optional ColunaCrit2 As Long , _ 
Optional Criterio3, Optional ColunaCrit3 As Long) As Variant

Intervalo está definido como Variant, mas mesmo que eu defina assim

Intervalo as New com.sun.star.table.CellRange

Não dá certo

Poste um exemplo, é mais fácil palpitar.
De preferência um arquivo.