SQLkerdes Creative Commons License 2011.02.02 0 0 13933

Lassúság ügyben nem a makróddal van a gond (vagyis igen, de nem úgy).

 

Egy ekkora makró lefutása nem tud vészesen lassú lenni.

 

A probléma ott van, hogy minden egyes alkalommal amikor a kivánt függvényt beszúrod, az excel újraszámolja az érintett cella értékét.  És ez már nagyon durván le tudja lassitani a kód lefutását, mert mielőtt a kód a következő sorra lépne, meg kell várja, hogy az excel kiszámolja az új cellaértékeket.

 

Meg lennél döbbenve, h. ez potenciálisan milyen sok időt vehet igénybe!

 

A megoldás a következő, a workbook tartalom számolást ki kell kapcsolni a kód elején és visszakapcsolni a kód végén.  És ha már ott tartasz akkor a képernyő frissitést is.

 

Itt van hogyan, javaslom hogy MINDEN jövőbeli kódodba rakd ezt be:

 

Sub valami()

 

Application.Calculation = xlCalculationManual

Application.ScreenUpdating = False

 

... ide jön a kódod

 

Application.Calculation = xlCalculationAutomatic

Application.screenupdating = true

 

End Sub

 

Előzmény: wawabagus (13931)