Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 11. 7. 2017 05:59:03

max2005
Člen
Registrace: 1. 6. 2017
Příspěvků: 28

Makro R1C1 Vyřešeno - Nově knihovna Moje makra

Zdravím všechny,

prosím kdo zná příkazy makra k pohybu v listu pomocí R1C1

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

Jde to nějak pomocí tohoto, či je na to uplně jiný?

Ať sem hledal jak sem hledat nic užitečného jsem nenašel

vlastně jediné co jsem našel je INDIRECT("R2C3") jenže to je podle mě jen něco jako vzoreček

pak jsem také zde na webu v nějakém článku našel kód

doc = thisComponent
list = doc.sheets(0)
sloupce = list.columns
sloupec1 = sloupce.getByIndex(0)
radky = list.rows
radek1 = radky.getByIndex(0)

pomocí kterého by to možná také šlo, ale nebyl jsem schopný to zrealizovat.

Předem díky Max

Editoval max2005 (16. 7. 2017 22:30:22)

Offline

#2 15. 7. 2017 17:44:39

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Makro R1C1 Vyřešeno - Nově knihovna Moje makra

R1C1 je notace vzorců. Dá se to nastavit pro Calc podle Excelu. Potom by šlo v Calcu psát vzorce jako v Excelu.


     Makro v Basicu na tohle zřejmě neexistuje, i když by se možná dalo sestrojit. Muselo by přepsat XML. Nechtěl jsem odpovídat abych se Vás nedotkl. Dotaz není úplně bez smyslu, ale jen málokdo si to vyloží správně. Pokud se nastaví notace R1C1 tak se dá napsat makro typu : Cell.formula = "=něco(úsek s notací R1C1)". Jinak to význam nemá.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 16. 7. 2017 22:27:15

max2005
Člen
Registrace: 1. 6. 2017
Příspěvků: 28

Re: Makro R1C1 Vyřešeno - Nově knihovna Moje makra

Díky

nakonec jsem použil příkaz z VBA: ActiveSheet.Cells(Radek, hx). Chvíli jsem si myslel, že zmíněný příkaz funguje i bez Option VBASupport 1 což jsem sem chtěl s radostí napsat, ale to jsem se krutě zmílil smile po smazání Option VBASupport 1 to přestalo fungovat. sad

S příkazem to však jede tak aspoň tak.

Radek je generovanej cyklem, sl je v tomto případě určovan podmínkou IF dle zadané podmínky samozřejmě hx je míneno třeba h1-h100.

Jinak jsem díky Vašemu přikazu našel něco asi velmi podobného čím se po listu pohybovat: Cell = thisComponent.Sheets.getByIndex(0).getCellByPosition(0,0) a příkaz Cell.formula = "=něco(úsek s notací R3C3)" mi pak vlastně hodnotu vloží do buňky fajn to zkusím schválně přepracovat.

A teď už mi zbývá jen jak to vše dostat do, jak, že knihovny? moje makra. Tak nějak si myslím že by mu mohlo stačit že mu nějak žeknu že má pracovat v otevřeném sešitu xyz a na sešitu zyx, ale to se mi prostě nepodařilo ale klidně otázku můžu dát pod jiný dotaz.

Offline

#4 17. 7. 2017 12:01:46

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Makro R1C1 Vyřešeno - Nově knihovna Moje makra

Já měl na mysli zejména předvolbu NÁSTROJE > LIBRE OFFICE CALC > VZOREC > syntaxe vzorců. Je tam výběr Calc A1, Excel A1, Excel R1C1. Nastavení je možné přepínat, ale makro které by to přepínalo jsem nenašel. Je to jenom nějaké přepnutí 0/1 a podobně ve zdroji XML. Podobných věcí je dost a dají se někdy v Basicu, nebo UNO přepnout. Typickým příkladem je přepis vlastních maker. Také je to zásah do XML.
     Musí se to najít v některém modulu pro API, nebo najít ze zdrojáku XML. Většinou ale nikdo přepínat sem tam nepotřebuje. Notace R1C1 může nanejvýš zamotat hlavu i když například v ADDRESS je to někdy nepostradatelné stejně jako u INDEX, OFFSET a podobně.


-     U vzorců je A1 dáno na prvním místě číslem řádku (od jedničky) a teprva za ním číslo sloupce (od jedničky). Notací R1C1 jdou normálně některé vzorce - je jich cca 4-5. Aby šly všechny musí se přepnout volba.
-     U Maker (CellArray) je A1 dáno nejprve sloupcem (od nuly) a pak řádkem (od nuly) tedy "getByPosition(Column, Row)". Zde prakticky není alternativa pokud nebereme v úvahu "getByName(A1)".
-     U obecné Array je to něco mezi těmito dvěma syntaxemi ale značně složitější - jdou oba způsoby jak R0C0, tak R1C1, nebo C0R0 a C1R1.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí