< návrat zpět

MS Excel


Téma: vratit proměnnou rss

Zaslal/a 13.1.2024 21:48

Zdravím.
Pomocí makra : Call ZmenPromennou (hodnotaX) , dokážu zavolat druhé makro ZmenPromennou , kde se tato hodnotaX kodem změní, ale nedokážu ji vrátit mateřskému Makru zpět. Je na to nějaký fígl ? Ta změněná se mi při ukončení ZmenPromennou ztratí.

Díky
P

Zaslat odpověď >

#055938
avatar
Ty máš dve rovnaké Makra? ZmenPromennou?citovat
#055939
elninoslov
"Je na to nějaký fígl ?"
Áno, v rekurzii je - ByRef deklarácia premennej.
Ide len o to, ktorí predok má dostať zmenenú hodnotu. Každý? Ak iba priamy predok a nie aj ďalší pred ním, tak sa musí urobiť kópia premennej do lokálnej premennej a tá sa odošle ako ByRef parameter.
Uveďte presný príklad použitia a požadovaného správania, nech sa vysomárime.citovat
#055940
avatar
Asi už jsem na to přišel.

Když předávám Byref tak se mi ta hodnota zmenená i vrátí zpet a Byval zustane jen v tom druhem makru. Je to tak?.citovat
#055941
avatar
...tak asi nee

hodnoty se mi nevrátí, proč?

PrvniPrazdnyR
PosledniPlnyRadek
Příloha: zip55941_predej-promennou-a-vrat-ju.zip (18kB, staženo 3x)
citovat
#055942
Stalker
V Tool -> Options na kartě Editor zaškrtni checkbox "Require Varible Declaration"
To tě dokope řádně deklarovat proměnné. Při předávání parametrů dávej pozor na jejich pořadí. Porovnej si kódy mezi sebou.
Příloha: zip55942_predej-promennou-a-vrat-ju.zip (18kB, staženo 3x)
citovat
#055946
avatar
Děkuji!
Netušil jsem , že záleží i na pořadí.citovat
#055947
Začátečník
Parametry se do procedury/funkce, musí vždy předávat v pořadí v jakém jsou v dané proceduře/funkci deklarovány.

Pokud je parametr v proceduře/funkci označen jako volitelný (Optional) pak se nemusí předat a při volání procedury/funkce musí být "nevyplněn".
např.:
Sub Test
Dim parametr1 as Long, parametr3 as Long
Dim coVrati as long

parametr1=5
parametr3=10

coVrati= mujTest(parametr1, , parametr3) ' součet parametr1+parametr3
'coVrati=15
coVrati= mujTest(parametr1, False, parametr3) 'rozdíl parametr1-parametr3
'coVrati=-5
End sub

Function mujTest(param1, Optional param2=True,param3)
...
if param2 then
mujTest=param1+param3
else
mujTest=param1-param3
endif

End function
citovat
#055949
avatar
ok.citovat

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21