Macro para fechar documento calc sem erro

Pessoal para fechar a planilha via macro sempre utilizei o comando:
ThisComponent.Close(True) false também funciona ou o comando ThisComponent.CurrentController.Frame.Close(True)
porém tanto um quanto o outro fecha, mas apresenta erro e pede para recuperar o arquivo, já testei com dispatcher utilizando Uno:CloseWin, funciona excelente, mas não gostaria de utilizar o dispatcher. Alguém conhece ou forma que não seja o dispatcher e não apresente erro?

Ola @JúnioVieira, tenho esta macro que chamo de SubMacro:

Sub Execute ( oQue$ )
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:" & oQue & "", "", 0, Array())
End Sub

E nas macros utilizo o comando Execute “CloseWin

E serve para todos os comandos que não necessite de mais parâmetro, exemplo: "Copy", “Paste”, “Cut”, “DataSelect” e já identifique uns 60 comandos.

Desta maneira toda informação da macro Execute não preciso repetir em outros comando…

Não resolve o seu problema, mas para mim facilita a montagem de macros, visto que não sou programador.

Estou aprendendo a programar agora, mas você já tentou executar um comando de salvar, antes de fechar o documento. Do jeito que descreveu é como você apertasse a tecla de atalho para fechar o documento tipo: Alt +F4, sem salvar. Isso deve estar ocasionando um erro grave.

Tenta utilizar algo do tipo:

Sub Sair
ThisComponent.Store()
ThisComponent.CurrentController.Frame.Close(True)
End Sub

E se não der certo de pronto, tenta associar a um evento em algum botão, por exemplo. Espero que ajude.

Mestre, usei sua macro no meu arquivo e ela funciona legal. Porém, o LibO ainda identifica erro de arquivo fechado incorretamente. Saberia informar o que pode estar faltando?
Segue a rotina com alguns acréscimos.
Sub Sair()

REM Salvar antes de fechar
ThisComponent.store()
REM Fechar mue Dialog
frmLogin.EndExecute(1)

CreateUnoService("com.sun.star.frame.DispatchHelper") _ 
.executeDispatch(ThisComponent.CurrentController _
.Frame, ".uno:CloseWin", "", 0, Array())

End Sub

Tente usar a seguinte expressão em um módulo separado dos demais:

Option VBASupport 1' Opção compatibilidade com o VBA

Private Sub FecharSemSalvar

	ThisWorkBook.Close SaveChanges:=False 'Fechar o documento sem a informação de salvar antes
		
		Stop ' termina o código
End Sub

.

Olá @Junio
Você já conseguiu resolver este problema?
Por acaso você utiliza algum formulário (Caixas de Diálogo) no seu código de MACRO?
Eu estava com um problema semelhante, e consegui resolvê-lo apenas inserindo um comando form.Dispose no final da leitura dos campos do formulário. Ou seja, antes de fechar o documento [ ThisComponent.Close(False) ]

Se essas informações não forem suficientes, não se acanhe em perguntar.