< návrat zpět
MS Excel
Téma: Nějaký fígl na zrychlení výpočtů v cyklech?
Zaslal/a Neznalek007 3.1.2013 8:55
Prosím o radu, mám v makru i 6 cyklů vnořených do sebe a hledám výpočtem relevantní hodnoty (když je podmínka splněna, tak se vypisují po řádcích). Těch řádků nakonec může být i půl milionu. Makro maká dobře, ale trvá to někdy i 30 minut, záleží na mezních hodnotách (od - do). Nevím jestli to popisuju správně, ale nejdřív si naDIMenzuju pole a pak počítám s těmi hodnotami, to je rychlé. Mám dojem, že výpis na řádky pomocí [např. Cells(a,"aa")=hodnota atd.] to může zdržovat. Možná bude lepší to nějak zapisovat do "paměti" a pak to nakonec vyplivnout do buněk.. nebo něco jinýho. Ten finální krok mi chybí. Díky za odezvu
Poki(3.1.2013 9:05)#010825 Takhle bez znalosti toho, co se v tom makru deje, to lze jen velmi tezko rict, ale pokud mate vypnuty prepocitavani i prekreslovani obrazovky
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = Falses jejich pozdejsim nastavenim na puvodni hodnoty, tak se lze spise jen podivat na to, jestli skutecne potrebujete 6 vnorenych cyklu - myslim tim, jestli to nejde provest nejakym jinym zpusobem hledani nebo vypoctu...
citovat
Neznalek007(3.1.2013 9:20)#010826 pošlu soubor mejlem, děkuji za odpověď
citovat
AL(3.1.2013 9:59)#010827 Ahoj, hodne času ušetríš, pokiaľ nahradíš postupné zapisovanie do jednotlivých buniek v tvare Cells(a,"aa")=hodnota niečím v tomto zmysle:
Vytvoríš si výstupné pole, zistíš jeho rozmer a potom ho vložíš celé naraz do oblasti buniek s rovnakým rozmerom, aký má dané výstupné pole.
citovat
Neznalek007(4.1.2013 8:40)#010841 AL - to jsem nějak zkoušel, ale předem nevím, jak velké to pole bude.. ale děkuji za snahu všem
citovat
AL(4.1.2013 10:36)#010843 Neznalek, veľkosť poľa by si mal byť schopný zistiť, pokiaľ sa nepletiem, i dodatočne, cez UBound a LBound, alebo?
citovat