Macro para imprimir um intervalor dentro de uma planilha

Olá,
Achei por aqui um macro para imprimir uma planilha inteira, creio que possa ser atribuído a um botão.

Porém, não consegui alterar o código de forma a imprimir um intervalo especifico, A1:D23.

Dentro da planilha, desejo imprimir diversos intervalos, tendo um botão para cada intervalo imagino. Exceto se houver uma sugestão melhor.

Desde já, agradeço

Abaixo o código que imprime a planilha inteira que entrei por aqui.

Sub PrintActivePlan

Dim aPrintOps(0) As New com.sun.star.beans.PropertyValue
oDoc = ThisComponent
aPrintOps(0).Name = "01"
aPrintOps(0).Value = 0
oDoc.print(aPrintOps())

End Sub

Sem definir área de impressão não tem como, sai toda a planilha.

Edite sua pergunta e anexe um arquivo exemplo e qual área quer imprimir, use o ícone clipe para anexar o arquivo.

E poste a macro que usa, também.

Tentarei ser mais claro, obrigado!

Por favor veja se ficou mais claro meu pedido.

Ola @cassiocallins, segue uma que uso, as macros Execute e GoToLocal são SubMacros da principal PrintAreas.

Caso for mais áreas, e só incluir na Principal.

Sub PrintAreas
	GoToLocal "AreaParaImpressao1" 'Pode ser Area Nomeada
	Execute "DefinePrintArea"
	Execute "Print"
      
    GoToLocal "AreaParaImpressao2" 'Pode ser Area Nomeada
	Execute "DefinePrintArea"
	Execute "Print"
End Sub 

Sub Execute ( oQue$, Optional nQtd% )
Dim Exec(1) as new com.sun.star.beans.PropertyValue
Exec(0).Name = "By" : Exec(0).Value = nQtd
Exec(1).Name = "Sel" : Exec(1).Value = false
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController _
.Frame, ".uno:" & oQue & "", "", 0, Exec())
End Sub

Sub GoToLocal ( xLocal$ )
dim Loc(0) as new com.sun.star.beans.PropertyValue
Loc(0).Name = "ToPoint" : Loc(0).Value = xLocal
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame _
, ".uno:GoToCell", "", 0, Loc())
End Sub

Obrigado, vou testar e assim que puder respondo. Pensei agora, acho que dá pra tentar não para intervalos específicos e sim página atual centralizada na tela… pensando alto ainda rsrsrs
Novamente, obrigado!

Lembrando, cada área de impressão, sai em uma página. Não tem ( não conheço ) maneira de juntar áreas na mesma página.

Amigo, deu tudo certo aqui. Muito Obrigado!
Retirei apenas a parte da segunda zona de impressão.
Aparece uma mensagem dizendo intervalo inválido, mas abre e vai para visualização de impressão…
vou caçar mais um pouco aqui…
Tentei anexar a imagem aqui pra você contemplar sua obra rsrsrs mas não achei.

Perfeito, o exemplo era para mais de uma área de impressão.

Se quer que envie para a impressora direto é só trocar o comando: Execute “Print” para Execute “PrintDefault”, não abre o dialogo, imprime conforme a ultima alteração dos parâmetros.