< návrat zpět

MS Excel


Téma: Static vs Dim rss

Zaslal/a 20.8.2014 10:31

Ahojte,

Chcel by som sa opytat ci niekto vyuziva zamiesto DIM aj Static v svojich projektoch?? Resp. Ci to robi viac uzitku ako neplechu???

napr. v svojom testovacom projekte som to pouzil v funkcii a ked som tu funkciu roztahoval po bunkach tak kazdeho by napadlo ze to bude 5, 10, 15, 20, 25, 30 :)) Aj ja som si to myslel. Ale Microsoft neprepocitava funkcie postupne v tomto poradi .... presnejsie to prepocitavanie som nezistoval ... ale ked si to odkrokujete tak vidite ako to ide tak isto vysledok hovori sam za seba ako to robi

tak ale toto zistenie s otazkou nema nic spolocne :))

Chcel som sa opytat ci Static sa da lepsie niekde vyuzit ako DIM????

Příloha: zip21240_test.zip (12kB, staženo 14x)
Zaslat odpověď >

#021241
avatar
Proměnné na začátku procedury

Takové proměnné jsou lokálními proměnnými.
Sub PromenneVProcedure()
Dim Alfa
'proměnná dostupná pouze po dobu běhu této procedury
Static Beta
'proměnná dostupná po dobu běhu aplikace
'dostupnost pouze pro tuto proceduru
'obsah proměnné zachován i po ukončení procedury

'zde následuje další kód

End Sub
Poznámka
Ze zkušenosti vím, že obsah proměnné definované slovem Static se sice uchovává i pro další volání procedury, pokud se ovšem na něj neodkážete nechtěně z procedury jiné! Pak je obsah takové proměnné resetován. Pokud tedy budete vícekrát volat první uvedenou proceduru níže, obsah proměnné DruhMasa se zachová, volání druhé procedury ale obsah vymaže. To mi nepřipadá korektní.

viz. http://www.officir.ic.cz/chipex05/02/excel_vba_deklarace.htmlcitovat
#021242
avatar
Jak je to s tou důvěrou?

Ta poznámka je nesmysl a v odkazu uvedený příklad také.
(druhá procedura proměnnou nevidí a implicitně vytváří novou a samozřejmě prázdnou).citovat
#021243
avatar
@cmuch1: Jak je to s tou důvěrou?

Ta poznámka je nesmysl a v odkazu uvedený příklad také.
(druhá procedura proměnnou nevidí a implicitně vytváří novou a samozřejmě prázdnou).citovat
#021244
avatar
Já hodil jen odkaz.

Tak tady je jiný odkaz http://office.lasakovi.com/excel/vba-teorie-zaklady/promene-excel-vba/

Jinak s důvěrou nevím, ještě jsem neměl tu čest.citovat
#021247
avatar
no ja som to chvilu skusal a pridemi to tak ze ked mam:
sub test()
static AA as integer
end sub

Tak je to to iste ako toto:
Dim AA as integer
sub test()
end sub


samozrejme static este ide dat na cely sub:
static sub test()
Dim AA1 as integer
Dim AA2 as integer
Dim AA3 as integer
end sub


podla mna to je len pre slacker programatorov ktorym sa nechce rollovat hore :)

alebo este samotna existencia tej premmenj moze byt podstatne pre niekoho .... ale to si nemyslimcitovat
#021249
avatar
Porovnaj
Dim AA As Integer
Sub test()
AA = AA + 1
MsgBox AA
End Sub
Sub atest()
AA = 10
Call test
MsgBox AA
End Sub


s
Sub test()
Static AA As Integer
AA = AA + 1
MsgBox AA
End Sub
Sub atest()
AA = 10
Call test
MsgBox AA
End Sub

A spúšťaj opakovane atestcitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje