Olá pessoal!
Gravei uma macro em uma planilha de libreofficecalc, que é disparada por um botão. A macro copia um intervalo (B3:N12 e I3:N12) de uma planilha, e cola especial em outra planilha (no mesmo arquivo). Sempre que eu clico no botão, os dados são novamente copiados, e colados a partir da última linha (assim fica registrada todas as vezes que o botão é clicado). Porém, se altero os dados do intervalo original, ao clicar novamente no botão, os dados colados são sempre os mesmos.
Fiz alguns testes. Primeiro apaguei todas outras macros da planilha. Depois reduzi o intervalo para B3:N12 (sem intervalos espaçados). Segue o mesmo problema.
Uma das células copiadas tem texto tipo ="Nonono "&$C$4 . Alterei esse parâmetro, mas também não tenho sucesso. As outras células tem condições “se”, e outras funções.
Não tenho conhecimento em programação via API… por isso peço ajuda aos amigos. Obrigado!
sub expositor
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$8:$N$12"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$J$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "By"
args5(0).Value = 1
args5(1).Name = "Sel"
args5(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args5())
dim args6(1) as new com.sun.star.beans.PropertyValue
args6(0).Name = "By"
args6(0).Value = 1
args6(1).Name = "Sel"
args6(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args6())
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end sub`