Isključite (ili uključite) automatske proračune - primjeri VBA koda

Kad god ažurirate vrijednost ćelije, Excel prolazi kroz postupak ponovnog izračuna radne knjige. Kada radite izravno u programu Excel, želite da se to dogodi 99,9% vremena (iznimka je ako radite s iznimno velikom radnom knjigom). Međutim, to može jako usporiti vaš VBA kôd. Dobra je praksa postaviti svoje izračune na ručne na početku makronaredbi i vratiti izračune na kraju makronaredbi. Ako trebate ponovno izračunati radnu knjigu, možete ručno reći Excelu da izračuna.

Isključite automatske izračune

Automatski izračun s makronaredbom možete isključiti postavljanjem na xlmanual. Upotrijebite sljedeći dio VBA koda:

1 Primjena.Izračun = xlPriručnik

Ponovo uključite automatske proračune

Za ponovno uključivanje automatskog izračuna s postavkom xlAutomatic:

1 Primjena.Izračun = xlAutomatski

Preporučujem da onemogućite automatske izračune na samom početku postupka i ponovno omogućite automatske izračune na kraju. To će izgledati ovako:

Onemogućite primjer makroa automatskih izračuna

12345678 Sub Auto_Calcs_Example ()Primjena.Izračun = xlPriručnik'Učini neštoPrimjena.Izračun = xlAutomatskiKraj podm

Ručni izračun

Kada su automatski izračuni onemogućeni, možete koristiti Izračunati naredba za prisiljavanje Excela na ponovni izračun:

1 Izračunati

Također možete reći Excelu da ponovno izračuna samo pojedinačni radni list:

1 Radni listovi ("list1"). Izračunajte

Također možete reći VBA da ponovno izračuna samo raspon (kliknite da biste pročitali naš članak o metodama izračuna VBA)

Evo kako bi ovo moglo izgledati unutar makronaredbe:

12345678910111213 Sub Auto_Calcs_Example_Manual_Calc ()Primjena.Izračun = xlPriručnik'Učini nešto»Ponovno izračunajIzračunati'Učinite više stvariPrimjena.Izračun = xlAutomatskiKraj podm

VBA postavke - kod za ubrzanje

Ako vam je cilj ubrzati kôd, razmislite i o prilagodbi ovih drugih postavki:

Onemogućavanje ažuriranja zaslona može napraviti veliku razliku u brzini:

1 Application.ScreenUpdating = Netačno

Isključivanje statusne trake također će napraviti malu razliku:

1 Application.DisplayStatusBar = Netačno

Ako vaša radna knjiga sadrži događaje, trebali biste onemogućiti i događaje na početku vaših postupaka (kako biste ubrzali kôd i spriječili beskonačne petlje!):

1 Application.EnableEvents = Netačno

Na kraju, vaš VBA kôd može se usporiti kada Excel pokuša ponovno izračunati prijelome stranica (Napomena: neće utjecati na sve postupke). Da biste isključili DisplayPageBreaks, upotrijebite ovaj redak koda:

1 ActiveSheet.DisplayPageBreaks = Netačno

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave