Kezdőlap › Fórumok › Excel programozás › Táblázatok makrózása
- This topic has 4 hozzászólás, 2 résztvevő, and was last updated 8 years telt el by Vbacube.
-
SzerzőBejegyzés
-
2016-12-14-08:58 #3255
Szia Imre,
azt vettem észre, hogy ha egy táblázatként formázott tartományon végzett műveletet (pl.: kijelölések) makrószerkesztővel rögzítek, akkor a táblázat nem ListObject-ként, hanem hagyományos tartományként (Range) szerepel a felvett makróban. Persze, ha utána ezeket a sorokat átírom a ListObject-es változatra, akkor működnek, de nem világos, hogy ez miért van. Íme egy példa – egy hagyományos tartomány táblázattá alakításának makrózása a rögzítővel:Range(„D1:F7”).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range(„$D$1:$F$7”), , xlYes).Name = „Teszt_Tábla”
Range(„Teszt_Tábla[#All]”).Select
ActiveSheet.ListObjects(„Teszt_Tábla”).TableStyle = „TableStyleMedium3”Ha a 3. sor helyére ezt írom:
ActiveSheet.ListObjects(„Teszt_Tábla”).Range.Select
akkor ugyanúgy működik.Az egészben az a legfurcsább számomra, hogy láthatólag tudja, h mi az a ListObject, hiszen létrehozza, elnevezi, stb., de aztán rögtön el is felejti. Később pedig, ha kézzel írt makróban ListObject-ként hivatkozom rá, akkor megint csak tudja, h miről beszélek.
Ugyanez történik akkor is, ha mondjuk a táblázat egyes részeit jelölöm ki. Pl.:
Ezt veszi fel: Range(„TBL_Teszt[Oszlop3]”).Select
de ezt is megérti: ActiveSheet.ListObjects(„TBL_Teszt”).ListColumns(3).DataBodyRange.SelectMi lehet ennek a magyarázata? És érdemes lehet a kódban lecserélni a felvettet a ListObject-es változatra?
Köszönöm, üdv
András2016-12-14-10:14 #3256Szia!
Ez „sajnos” így működik by design.
Emiatt nekem is elég sokat kellett utánajárnom, mit hogy kell csinálni, ha Listobject típusú műveleteket akarok csinálni.A VBA tanfolyamon szoktam adni egy doksit, amiben összefoglalom a ListObject típusú műveleteket.
Van jó néhány oldal, ami ezzel foglalkozik, gondolom már rájuk találtál.Itt van például egy remek darab.
Imre
2016-12-14-11:54 #3257Igen, köszi, ez megvan.
Amúgy, tavaly év végén voltam Nálad VBA tanfolyamon, és most átnéztem a doksikat, de nem találtam köztük ListObject-est. Esetleg el tudnád küldeni emailen?
Magamnak puskázás céljából én is készítettem egy hasonlót, csatoltam, hátha valaki hasznát veszi.
A kérdés igazából arra vonatkozott, hogy érdemes-e átírni kézzel, vagy jó-e az úgy, ahogy a rögzítő felveszi.András
Attachments:
You must be logged in to view attached files.2016-12-14-19:23 #3259Szia!
Ha neked megfelelően működik, akkor használhatod úgy, ahogy felveszi a rögzítő.
De nem baj, ha a rögzítő féle struktúrált hivatkozást és a listobject megoldást is ismered egy-egy szituációban.Az anyagot elküldöm email-ben.
Imre
2016-12-14-20:20 #3260Köszi szépen!
András
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.