@Júnio Vieira
Segue. Adapte para sua necessidade.
Sub Copiar_Colar
Dim LastRow, StartRow1 as Long
oDoc = ThisComponent
oPlanilha1 = oDoc.Sheets.GetByName("Origem")
oPlanilha2 = oDoc.Sheets.GetByName("Destino")
LastRow1 = Ultima_Linha_Origem
LastRow2 = Ultima_Linha_Destino
'Variável Copiar = Range definida para copiar as informações da Planilha1 com base na última linha preenchida.
oCopyRange = oPlanilha1.getCellRangeByPosition(0, 2, 22, LastRow1).getRangeAddress()
'Variável Colar = Cola as informações copiadas para a planilha2
oPasteRange = oPlanilha2.getCellByPosition(0, 1).getCellAddress()
'Essa linha copia e cola as informações da planilha alvo
oPlanilha2.CopyRange(oPasteRange, oCopyRange)
'Essa linha apaga as informações copiadas.
oPlanilha1.getCellRangeByPosition(0, 1, 22, LastRow1).ClearContents (7)
End Sub
Sub Ultima_Linha_Origem () as Long
oDoc = ThisComponent
oPlanilha1 = oDoc.Sheets.GetByName("Origem")
REM Procedimento para encontrar a última linha preenchida
REM Cria cursor na planilha referenciada em A1
c = oPlanilha1.CreateCursor
REM Percorre até última céluala preenchida (função ctrl + end do teclado)
c.GoToEndOfUsedArea(False)
REM Traz a posição da última célula preenchida em qualquer lugar. A posição parte: Posição 0 = linha 1, Posição 1 = Linha2
Ultima_Linha_Origem = c.RangeAddress.EndRow
End Sub
Sub Ultima_Linha_Destino () as Long
oDoc = ThisComponent
oPlanilha2 = oDoc.Sheets.GetByName("Destino")
REM Procedimento para encontrar a última linha preenchida
REM Cria cursor na planilha referenciada em A1
c = oPlanilha2.CreateCursor
REM Percorre até última céluala preenchida (função ctrl + end do teclado)
c.GoToEndOfUsedArea(False)
REM Traz a posição da última célula preenchida em qualquer lugar. A posição parte: Posição 0 = linha 1, Posição 1 = Linha2
Ultima_Linha_Destino = c.RangeAddress.EndRow
End Sub