copy sheet another document clipboard paste Stephan Wunderlich Michael Hoennig Tom Schindl How copy a sheet to another calc document?

The following macro copies the contents of a given sheet into a newly created of a second document:

Sub Main firstDoc = ThisComponent selectSheetByName(firstDoc, "Sheet2") dispatchURL(firstDoc,".uno:SelectAll") dispatchURL(firstDoc,".uno:Copy") secondDoc = StarDesktop.loadComponentFromUrl("private:factory/scalc","_blank",0,dimArray()) secondDoc.getSheets().insertNewByName("inserted",0) selectSheetByName(secondDoc, "inserted") dispatchURL(secondDoc,".uno:Paste") End Sub sub selectSheetByName(document, sheetName) document.getCurrentController.select(document.getSheets().getByName(sheetName)) end sub Sub dispatchURL(document, aURL) Dim noProps() Dim URL as new com.sun.star.util.URL frame = document.getCurrentController().getFrame() URL.Complete = aURL transf = createUnoService("{@see com.sun.star.util.URLTransformer}") transf.parseStrict(URL) disp = frame.queryDispatch(URL, "", {@see com.sun.star.frame.FrameSearchFlag:SELF} OR {@see com.sun.star.frame.FrameSearchFlag:CHILDREN}) disp.dispatch(URL, noProps()) End Sub
Fixed bug of wrong line break. Added OS-Info, OO-Info and IDL-Linking Modified to match new snippet-DTD initial release