-
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
- sziku69: Szólánc.
- OpenMediaVault
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Andras-G: #Kószagondolat - eMag tapasztalatok 2026-ban
- Formula-1
- Nvidia GPU-k jövője - amit tudni vélünk
- Meggyi001: Vegán? Nem vegán?
- Honor Magic6 Pro - kör közepén számok
- Melyik tápegységet vegyem?
- További aktív témák...
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- MS SQL Server 2016, 2017, 2019
- Vírusirtó, Antivirus, VPN kulcsok GARANCIÁVAL!
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- ÚJ Bontatlan Sony Bravia K-65XR90 - 4K HDR Google Mini LED TV - 3 év garancia
- Apple iPhone 14 Pro 512GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó 1db Nokia steel hr hibrid okos óra dobozával
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

Fferi50