Odpovědět Programovanie makier v LibreOffice: Podmienky (1) 4. 05. 2016, 11:48:10
Edo jen malý detail. InputBox je z principu typem proměnné string. InputBox to předá a sešit to vezme jako číslo - v textové podobě. Libre office umí i s takovým číslem počítat, ale když se zadá například do buňky přímo - například [i]Cell.Value = Vstup[/i] tak se objeví nula.
V tomto případě se to obchází dotazem, který to vyhodnotí správně jako IsNumeric(), ale aby to šlo použít musí být předeklarováno na číslo.
- Tedy buď Val([i]Vstup[/i]), nebo hned na začátku obalit InputBox
- Vstup = Val(InputBox("Zadajte hodnotu", "Hodnotenie vstupu"))
Potom již dotaz na typ není potřeba, ale někdy se hodí opravdu dodefinovat typ dodatečně. Datumové a časové funkce mohou být v textovém tvaru, ale jde z principu o čísla. Takže například
IF IsNumeric(Vstup) = true Then
cislo = Val(Vstup)
ElseIF ......
...
End If
Odpovědět Re:Programovanie makier v LibreOffice: Podmienky (1) 4. 05. 2016, 18:52:49
ďakujem za reakciu, človek vždy všetko neošetrí a stále sa má čo učiť ;)
lp.
Odpovědět Programovanie makier v LibreOffice: Podmienky (1) 4. 05. 2016, 13:31:48
Dovolím si trochu kritiky.
* Nějak jsem zatím neviděl zmínku o deklaraci
option explicit
Hodí se nejen začátečníkům.
* Bylo by možné ukázky maker odsazovat? Mizerně se to čte.
* Ukázky typu:
Cislo = IsNumeric(Vstup)
...
Elseif Cislo = True Then
...
se mi moc nelíbí.
- Proměnná Císlo neobsahuje číslo, ale boolovskou proměnnou. K čitelnosti to nepřispívá.
- Proč je tak častá touha vyhodnocovat booleovské proměnné testem True = True ?
Odpovědět Re:Programovanie makier v LibreOffice: Podmienky (1) 4. 05. 2016, 18:35:36
O Option Explicit už som čitateľov oboznámil v tomto článku http://www.openoffice.cz/navody/programovanie-makier-v-libreoffice-deklaracie-premennych a v tomto dieli mi ako nutnosť použitia Option Explicit neprišla, mal som v pláne ukázať iné veci. Samozrejme, každá oblasť sa dá vysvetliť mnohými príkladmi, ale ďakujem za feedback. Áno, nabudúce už budem osadzovať
Odpovědět Re:Programovanie makier v LibreOffice: Podmienky (1) 28. 10. 2016, 07:58:36
IsDate("") vracia hodnotu True, je to jej vlastnosť.
neutr
Odpovědět Re:Programovanie makier v LibreOffice: Podmienky (1) 28. 10. 2016, 18:14:45
Tohle je dané nastavením buňky. jde o to, že můžete zasat "nic" s OK, nebo zrušit - pak by tam mělo být false, ale verze AOO/LO se mohou odlišovat. Dodnes některé funkce sešitu vrací FALSE = 0 a TRUE = 1, nebo FALSE = -1 a TRUE = 0. Inputbox by měl vracet -1/0.
Když tedy zaentrujete nic - je to nula, nebo jednička. Pak už stačí mít zapnuté automatické rozpoznávání formátu a hopne tam datum - nejspíš 31. prosinec 1899, nebo 1. leden 1900.
Ono stačí navolit čísla (volba "vše" udělá často datumy). Stane se někdy i při této volbě, že tam dříve datumy byly, obsah se smazal, ale formát zůstal. Takže se podívejte na FORMÁT > BUŇKY > ČÍSLA. Podobný problém Vás může potkat s logickou hodnotou. Když tam zapomenete logický formát který vznikl zejména chybným zadáním vzorců tak to vrací FALSE/TRUE. Když navíc budete mít úzké sloupce bude to vypadat jako chyba.
neutr
Odpovědět Re:Re:Programovanie makier v LibreOffice: Podmienky (1) 28. 10. 2016, 18:26:11
To hlasní jsem vynechal - omlouvám se.
Jakmile byla proměnná dříve zadeklarovaná tak pochopitelně vrací datum vždy (datumy 0 a 1 jsou ta historická data přelomu 1899/1900).
To má ing Pastierik pravdu - chtěl jsem jen napsat že jste měl předeklarovat proměnnou stejně jako byste to musel udělat s formátem u buňky sešitu.