-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Fferi50
Topikgazda
válasz
ppapp44
#37415
üzenetére
Szia!
"Most is deklarálva van mind a workkbook-on és a modul1-ben (sőt kísérletként visszaraktam a modul2-be és formra is (teljesen feleslegesen)), de így is működik."
Ugye azt tudod, hogy a három-négy különböző helyen deklarált ugyanazon nevű publikus változó NEM UGYANAZ, hanem 3-4 különböző változó, mindegyiket a Modulnév.Változónév formulával tudod elérni - KÜLÖN-KÜLÖN - és más más értékük lehet!
Természetesen ennek is meg lehet a maga célja, jelen esetben azonban inkább csak zavart okoz szerintem.Én semmiképpen nem javaslom.
Üdv.
-
Fferi50
Topikgazda
válasz
ppapp44
#37413
üzenetére
Szia!
Szerintem az volt a baj, hogy minden modulban stb. definiáltad a változót. Csak egy helyen deklaráld és utána arra az egyre hivatkozz. Különben honnan tudná a VBA, hogy melyiket akarod... ha pedig nincs előtte modulnév, akkor az aktuális eljárásban magának deklarálja, ha nincs Option Explicit.
a javított verziót.
Üdv.
-
ppapp44
újonc
válasz
ppapp44
#37393
üzenetére
A korábban definiált public változóim működnek (modul hivatkozás nélkül), de a ma felvett egyszerűen nem. Már cserélgettem a nevet, a tipust (as string, as variant)a definiálás helyét (Thisworkbook, userform, modul). Használtam Feri hivatkozását "modul2.változó", valóban "userform10.muszak", de így sem látom máshol (msgbox muszak) csak a userform-on belül. (Egyébként ez valóban jó ötlet.)
Hogyan tudom ellenőrizni, hogy a VB milyen típusnak tart egy változót?
Létezhet darabszámi korlátja a (global) változóknak????
Előre is köszi Péter -
Fferi50
Topikgazda
válasz
ppapp44
#37393
üzenetére
Szia!
"de a változó nem kap értéket. Olyan mintha nem válna globálissá sehogy sem a userform-on"
A userform kódlapján definiált változó csak akkor és addig él, amíg a form a memóriában van! Tehát betöltés előtt és Unload után már nem érhető el, akkor sem, ha Public.
Ezért ezeket a változókat is célszerű általános modulban deklarálni és a userform kódjában értéket adni nekik.Üdv.
-
Fferi50
Topikgazda
válasz
ppapp44
#37391
üzenetére
Szia!
A publikus változókra a Modulnév.Változónév szintaxissal hivatkozhatsz.
Pl. Thisworkbook.Ezavaltozo = "akarmi" vagy Module1.Valtozo=5
Ezt akkor is tanácsos betartani, ha éppen az adott modulon vagy formon belül vagy mert ugyanazon név előfordulhat eljáráson belül is.
Érdemes átnézned a VBA help változók élettartamára vonatkozó leírását.Üdv.
Új hozzászólás Aktív témák
- Kínai és egyéb olcsó órák topikja
- SONY LCD és LED TV-k
- Renault, Dacia topik
- Samsung Galaxy Felhasználók OFF topicja
- Google Pixel topik
- exHWSW - Értünk mindenhez IS
- Foxpost
- Kerékpárosok, bringások ide!
- droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
- World of Tanks - MMO
- További aktív témák...
- Eladnád a telefonod? KÉSZPÉNZES OKOSTELEFON FELVÁSÁRLÁS azonnali fizetéssel!
- HIBÁTLAN iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3050, 96% Akkumulátor
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Note 13 Pro 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3284
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

Fferi50
