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

#1 24. 7. 2019 11:23:51

davef8
Člen
Registrace: 22. 11. 2018
Příspěvků: 20

Makro, odkaz na vedlejší list

Zdravím, mám 2 listy a makrem kopíruji některé údaje z jednoho do druhého. Je možné docílit toho, že pak když kliknu to buňku druhého listu, abych tam měl vzorec a ne jen string? Např. =list1.A2 ? Nikde to nemohu dohledat

teď to dělám následovně: thisComponent.Sheets(2).getCellByPosition(i,j).String = thisComponent.Sheets(1).getCellByPosition(3,j).Value

díky

Editoval davef8 (24. 7. 2019 11:35:51)

Offline

#2 24. 7. 2019 12:49:16

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

Re: Makro, odkaz na vedlejší list

davef8 napsal(a)

thisComponent.Sheets(2).getCellByPosition(i,j).String = thisComponent.Sheets(1).getCellByPosition(3,j).Value

Správně je to deklarováno jako vzorec takto :

 thisComponent.Sheets(2).getCellByPosition(i,j).Formula = thisComponent.Sheets(1).getCellByPosition(3,j).Formula

     Testoval jsem to na vzorci ve buňce A1 =C1+10 konkrétně :
Sub Main
thisComponent.Sheets(1).getCellByPosition(0,0).Formula = thisComponent.Sheets(0).getCellByPosition(0,0).Formula
End Sub
a chodí to. Jenomže může nastat problém pokud by to byl složitější vzorec s odkazem například na ještě jiný list. Tady by asi někdy pomohlo absolutní adresování. Ale obecně bych tomu dost nedůvěřoval. Určitě potřebujete neco odlišného od původního listu - jinak to nemá cenu.


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 24. 7. 2019 14:05:13

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 568

Re: Makro, odkaz na vedlejší list

Ahoj. Kdysi jsem se nad tím dost navztekal. Nevím zda je to tvůj případ, ale já jsem měl nakonec problém v té tečce. Myslím že zafungoval vykřičník thisComponent.Sheets(2).getCellByPosition(i,j).Formula = "=list1!A2" Ale nejsem si úplně jistej, chce to vyzkoušet, možná je k tomu potřeba i nějaké nastavení LO ....
EDIT: ještě podotýkám že jinak mi normálně fungují tečky za listem, ale přes makro .FORMULA fungoval jen vykřičník, proto mi hodně trvalo než jsem na to přišel.
edit2: a ještě: vstupem do .formula je .string nebo .formula. S .value to určitě fungovat nebude.
edit3. Pokud je vtupem typ .formula pak výstupem je absolutně ten stejný vzorec, nic se netransformuje přenosem do jiného listu, tzn. není to totéž jako ctrl+c/v, kde se adresa relativně transformuje. (samozřejmě to platí i pokud je vstupem .string, ale tam je to jaksi očekávané :-)
edit4: tak s tou tečkou to byl tehdy asi "bug" v LO6 to nyní normálně funguje s tečkou "=List1.A1"

Editoval ludviktrnka (24. 7. 2019 14:34:24)


LibreOffice 6.2.

Offline

#4 25. 7. 2019 13:16:17

davef8
Člen
Registrace: 22. 11. 2018
Příspěvků: 20

Re: Makro, odkaz na vedlejší list

vyřešeno, díky oboum za nakopnutí smile

Offline

Zápatí