Foranlediget af et spørgsmål på LibreOffice forum:
Hvordan kan man kopiere et bestemt område fra et ark til markørens position i et hvilket-som-helst ark i regnearksdokumentet.
Den pågældende spørger vil gerne kopiere fra et skjult ark, hvilket denne løsning desværre ikke opfylder. Årsagen er at jeg anvender klippe-klistre, og det kan man ikke fra et ark man ikke kan se.
Koden:
Sub Main
oDoc=thisComponent
'husk markeringen
Selection=oDoc.CurrentSelection.getRangeAddress
oSheets = oDoc.Sheets
'Det område vi ønsker at kopiere (kilde)
SourceArea = oDoc.Sheets.getByName("Data").getCellRangeByName("A1:B8")
'Marker området
oDoc.CurrentController.Select(SourceArea)
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
'Kopier det markerede
dispatcher.executeDispatch(document, ".uno:Copy", "", 1, Array())
'Find tilbage til markeringen
oSheet = oDoc.getSheets().getByIndex(Selection.Sheet)
oCell = oSheet.GetCellbyPosition( Selection.StartColumn, Selection.StartRow )
oDoc.CurrentController.Select(oCell)
'Indsæt
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
End Sub