Možné makro zde:
sub kopiruj_bez_objektu
dim document as object, doc as object, listy as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
doc = ThisComponent
listy = doc.sheets()
prvni_list = listy(0) ' list1
nazev = prvni_list.getCellRangeByName("A1") ' podle buňky A1 bude pojmenován nový list
If listy.hasByName(nazev.string) then
nazev.string = nazev.string & "_" & 1
novy_list = listy.insertNewByName(nazev.string, listy.count)' pokud již existuje přejmenujeme
ElseIf nazev.string = "" then
nazev.string = "Nepojmenovaný"
novy_list = listy.insertNewByName(nazev.string, listy.count) ' není vyplněno A1 - pojmenujeme
Else
novy_list = listy.insertNewByName(nazev.string, listy.count) ' vložíme nový list na poslední pozici
endif
REM podmínky kopírování
dim args4(0) as new com.sun.star.beans.PropertyValue ' na jaký list kopírujeme
args4(0).Name = "Nr"
args4(0).Value = listy.count ' poslední list
dim args6(0) as new com.sun.star.beans.PropertyValue ' na jakou první buňku budeme vkládat
args6(0).Name = "ToPoint"
args6(0).Value = "$A$1" ' začneme v A1
dim args7(0) as new com.sun.star.beans.PropertyValue ' podmínky kopírování
args7(0).Name = "Flags"
args7(0).Value = "SVDFNT" ' text, čísla, data, vzorce, komentáře a formáty
doc.CurrentController.Select(nazev)
dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array()) ' označíme vše
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array()) ' zkopírujeme do schránky
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4()) ' přejdeme na list
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6()) ' do určené buňky
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args7()) ' vkládáme
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6()) ' skočíme do A1
Msgbox "Byl zkopírován list s názvem " + nazev.string, 0, "Zpráva "
end sub
Makro vytvoří nový list s názvem podle hodnoty v buňce A1, zkopíruje data ze vstupního (prvního) listu a vloží do nově vytvořeného - přitom nekopíruje objekty. Výsledný list je tedy bez formulářových prvků. Snad je dostatečně okomentované a bude k užitku.
;o)
Linux Mint 16 Petra - Apache OpenOffice 4.0.1
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ