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

#1 26. 9. 2011 12:41:08

ViSoft81
Člen
Registrace: 26. 9. 2011
Příspěvků: 4

Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

Podobné téma už tu je s flagem Vyřešeno, ale můj problém neřeší. Proto zakládám nové.
Makro po napsání funguje OK, ale při opakovaném zavření/otevření souboru hlásí tuto chybu. Když hlášku potvrdím a makro normálně použiji, zase vše funguje OK. Jak se zbavit hlášení chyby při načítání souboru?

public function strcat(src as string)as string
' src ... 1D svisla oblast bunek s retezci ve formatu "XY1:XY2"

 dim document as object
 dim list as object
 dim cell as object
 
 dim dst() as string
 
 dim Y1 as long
 dim Y2 as long
 dim X as long
 
 dim ndx as long
 
 dim vertex() as string
  
 document = stardesktop.currentcomponent
 list = document.sheets(0) ' ZDE HLASI CHYBU PRI NACITANI SOUBORU

Díky předem za jakoukoli radu.

Editoval ViSoft81 (30. 9. 2011 12:54:05)

Offline

#2 26. 9. 2011 16:04:15

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

zkuste
document = thisComponent


předchozí definicí jste odkazoval na aktuální dokument (ten ovšem ještě není otevřený, teprve se otvírá, proto vyskakuje chyba, že není nastavená proměnná listu sešitu)


;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É

Offline

#3 27. 9. 2011 10:00:25

ViSoft81
Člen
Registrace: 26. 9. 2011
Příspěvků: 4

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

Děkuji za radu. Teď mám bohužel chybovou hlášku "Vlastnost nebo metoda nenalezena" na stejném řádku. Asi budu muset použít jinou metodu než sheets(), jen nevím jakou. Poradíte?

Offline

#4 27. 9. 2011 16:05:19

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

když makro spouštíte, spouštíte ho v Calcu? nebo ho spouštíte přímo z editoru maker?


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É

Offline

#5 27. 9. 2011 18:25:58

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

Jednodušší by bylo, kdybyste sem dal link na stažení souboru, ať to můžeme odladit, nejen naslepo tipovat...


Já používám v makrech tuto syntaxi:

Dim oSheets 
Dim oSheet1 as Variant
Dim oSheet2 as Variant
...
oSheets = ThisComponent.Sheets 
oSheet1 = oSheets.getByIndex(0)
oSheet2 = oSheets.getByIndex(1)
...

Manipulace s listy je např. v makru resp. souboru:
Řazení listů.ods

Editoval hanus (27. 9. 2011 18:27:47)

Offline

#6 27. 9. 2011 18:58:44

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

list1 = thisComponent.sheets(0)

toto používám běžně, bez jediného problému.
Pokud makro nenalezne metodu sheets, je to většinou proto, že není puštěno v aktivním dokumentu sešitu. Stává se mi to často, že zkouším makro, přeskakuji mezi okny, ale pokud před spuštěním makra nejsem v sešitu -> dojde k chybě.


;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É

Offline

#7 29. 9. 2011 14:50:40

ViSoft81
Člen
Registrace: 26. 9. 2011
Příspěvků: 4

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

Děkuji Vám za návrhy.

Vyzkoušel jsem, bohužel nezabralo - při otevírání .ODS padá na nenalezenou vlastnost/metodu.

Soubory jsem uložil zde: Z1652560_M230911.ods

Makro jménem "strcat()" má za úkol poslepovat řetězce z oblasti buněk.
Volá se ze souboru "Z1652560_M230911.ods" list "TEST" buňka $B$22.

Offline

#8 29. 9. 2011 19:20:21

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

V tom ODS souboru ale žádné takové makro není... Nemůžete ho do něj uložit překopírováním z toho .BAS souboru? Jaký je důvod, že makro(funkce) není přímo v tom souboru? Máte ho trvale uloženo v OOo v Moje makra?

Editoval hanus (29. 9. 2011 19:31:24)

Offline

#9 29. 9. 2011 20:03:18

sedlacekdan
Moderátor
Místo Nehvizdy
Registrace: 21. 6. 2010
Příspěvků: 617

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

soubor .bas je uložený také v úložně.


Při otevírání dokumentu jsou vždy přepočítávány veškeré vzorce. Problém je v uložení funkce, protože máte funkci uloženou v makrech OO tak při načítání nedojde ke spárování dokumentu s označením dokumentu v makru. (funkce se odkazuje na dosud neotevřený soubor - thisComponent.sheets)


Pokud si tedy funkci uložíte do dokumentových maker, nebude již docházet k chybě -  Funkce je přímo spárována s dokumentem a tedy ví, že se jedná o sešit.


Pouze při otevírání dokumentu budete muset povolit makra (podle toho jak máte nastavenou bezpečnost) v dokumentu.


Případně, pokud je umístění (uložení) dokumentu stále stejné, povolte si jeho umístění jako výjimku v bezpečnosti maker.
NÁSTROJE -> VOLBY -> BEZPEČNOST -> ZABEZPEČENÍ MAKER -> DŮVĚRYHODNÉ ZDROJE


;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É

Offline

#10 30. 9. 2011 12:50:58

ViSoft81
Člen
Registrace: 26. 9. 2011
Příspěvků: 4

Re: Makra - Chyba 91: Proměnná objektu není nastavena - VYŘEŠENO

Děkuji za rady, opravdu to pomohlo. Bohužel aplikace, která používá dotyčný soubor jako zdroj dat, nevidí makra jinde než v makrech OO. To už je ale jiná písnička smile

Offline

Zápatí