< návrat zpět

MS Excel


Téma: Pád Excelu po zaplnění paměti rss

Zaslal/a 6.3.2017 13:35

Dokázal by někdo poradit jak upravit makro tak aby využívalo méně systémových prostředků? Mám 64bit Win7 ale 32bit Excel. Makro jsou 2 cykly, jeden prochází cca 9000 řádků a na každém spustí cyklus který prochází dalších cca 2500 řádků v jiném listu. Porovnávají se záznamy a vkládají se odkazy na jiné soubory pomocí vzorců. Makro běží několik hodin ale nikdy nedoběhne protože se zaplní paměť (cca 1,6GB) a Excel zkolabuje, výsledek nelze uložit, nic.

Zaslat odpověď >

Strana:  « předchozí  1 2 3 4   další »
icon #035388
avatar
Nikoho tu nezaměstnávám, reagujete dobrovolně
Áno, iste. Tu sa predsa majú riešiť veci zadarmo, takže zadávateľ má proste pravdu, bez ohľadu na to, s akým nezmyslom príde a riešitelia sú proste povinní nezmysel zadarmo rozkľúčovať, nech ich to stojí akékoľvek úsilie. Svet sa v prdel obracia..citovat
#035405
avatar
Ano svět se v prdel obrací, díky lidem jako vy. Pokud na můj dotaz nelze odpovědět proč je tady tolik příspěvků? Stačilo by napsat že bez příkladu nelze a hotovo. Stačil by jeden. Místo toho tady dokola X lidí plýtvá časem a já se ptám proč? Fajn, možná dotaz nebyl položen správně, možná se ptám blbě, možná je můj kód mizernej...proč na to proboha ale reagujete když vám to podle všeho za to nestojí? Já si nějak odpovědi nárokuju? Vy víte co já čekám za odpovědi? Píšu někde že chci zadarmo řešení všech problémů světa? Ne. Nejste povinní sem cokoli psát a tak to nerobte.

Nechápu že se tolik lidí nechá vytočit "špatně" položeným dotazem na fóru... 2citovat
#035408
avatar
VencoXXX- když vás to netrkne, co vám zdejší Mistři na excel radí shrnu vám to do(ne)psané zásady tohoto fóra.
1. téměř vždy je nutné vložit přílohu
2. řádně popsat problém
3. vystupuj s pokorou, ikdyž se ti odpověď nelíbí.
Sám tady spíš sosám vědomosti a kradu nápady jiných než přispívám.
K váš problému: po každém cyklu uvolněte paměť, systémové prostředky.
Kdybyste předložil úplné soubory mohlo by to vaše makro stihnout do 10min po optimalizaci zdejší komunitou. čas na přípravu vám to mnohokrát vrátí.

Hlavně klid a nohy v kýblu...citovat
#035409
avatar
Já s vámi souhlasím, nicméně trocha pokory by neškodila ani zdejším "mistrum".
Dal jsem si tedy s tím práci a testovací soubory přikládám.

Já obecně nemám problém s kritikou, ale když si pořádně přečtete první post, tak já se prostě jenom ptám na radu, abych zjistil jestli je někdo schopen mi pomoci, jestli má někdo podobnou zkušenost. Nevím jací "Mistři" sem chodí ani jak ochotní jsou poradit, zkrátka jsem se zeptal a proč nedávám příklad hned jsem taky napsal. Já nikoho nenutím aby mi pomáhal, ale na několika fórech taky působím (ne ohledně programování) a s takovým přístupem jako tady jsem se snad ještě nesetkal. Takhle zadupat nováčka do země jenom proto že nepoložil dotaz tak jak se místním líbí, promiňte mi, ale i kdyby měli zmínění pánové titul mistra světa v excelu tak pro mě jsou to neandrtálci neschopní porozumět psanému textu, popřípadě internetoví trollové...ať si to dotyční přeberou.
Nikdo učený z nebe nespadl a zatím se tu neobjevila jediná smysluplná odpoveď nebo jakákoli rada ať už se přímo týká problému nebo ne.
Příloha: zip35409_test.zip (330kB, staženo 27x)
citovat
#035411
avatar
No "zdejší mistři" zrejme nedosahujú potrebnú úroveň, aby pochopili toto zadanie ani po ďalších vysvetleniach. Za toto by si im nemal nadávať. Oni za to naozaj nemôžu.citovat
#035412
elninoslov
Jediné čo mi tam na prvý pohľad bije do očí ohľadom pamäti je práve to spomínané neuvoľňovanie 4 objektov v rekurzii. A ohľadom rýchlosti mi nesedí nepredstaviteľné množstvo volaní listov a buniek. Ja by som to prerobil na polia. To by malo pri takomto množstve volaní podstatne pomôcť v rýchlosti. Neviem či to zvládnte, alebo či to bude možné (tak dopodrobna som to zas neskúmal). A farbu by som nastavil cez PF asi.A možno aj ExecuteExcel4Macro by sa dalo nahradiť tak, že by sa do listu Data vložil vzorec na všetky testované súbory, a tie čo nemajú daný list by hodili chybu. No a tie chyby potom vybrať pomocou SpecialCells a zmazať riadky.
Ale ako vravím, príliš som to neskúmal.citovat
#035414
avatar
Jo super díky, to ExecuteExcel4Macro pravděpodobně způsobuje to načítání paměti i když jsem si to původně nemyslel, zkusím to obejít podle vaší rady.

Jinak můžete trochu rozvést co znamená "neuvoľňovanie 4 objektov v rekurzii"? tomu nerozumím.
Ani co je špatně na volání listů a buněk, jak jinak to udělat? Myslel jste načíst to celé do pole a pak odkazovat na položky z pole? To bych měl zvládnout, první se potřebuju zbavit toho hromadění RAM, pak budu řešit rychlost. Ten kód je samozřejmě plný balastu jak jsem zkoušel různé varianty, optimalizovat to mám samozřejmě v plánu.citovat
icon #035416
eLCHa
@elninoslov

Vložení vzorce na neexistující list vyvolá dialog na vyhledávání souborů, řekl bych.

Asi bych to zkusil jimak
1 Ověření existence listu pomocí ado
2 vložení hodnoty

Ale nejsem u pccitovat
#035417
avatar
Jo pravda, to už jsem vlastně zkoušel. Proto jsem pak použil tu funkci s ExecuteExcel4Macro. Zkusím jestli se mi povede rozchodit to ADO.citovat
#035418
elninoslov
Áno, žiaľ. Ak je v zošite jediný list, tak je šumák, aký názov sa napíše, automaticky vloží správny odkaz na správny (jediný) list. No ak ich je viac, nespapá to. 7citovat

Strana:  « předchozí  1 2 3 4   další »

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

Která Ip otevřela sešit

Barth • 23.9. 12:27

Která Ip otevřela sešit

Barth • 23.9. 10:15

Která Ip otevřela sešit

Barth • 23.9. 9:48

Která Ip otevřela sešit

Scraper • 22.9. 12:47

Vyhledat s vícenásobných porovnáním

maxovo • 22.9. 11:29

spustit makro změnou hodnoty v buňce a svyhledat

Stalker • 21.9. 20:36

spustit makro změnou hodnoty v buňce a svyhledat

elninoslov • 21.9. 19:01