Dezactivați (sau activați) calculele automate - Exemple de cod VBA

Ori de câte ori actualizați valoarea unei celule, Excel trece printr-un proces de recalculare a registrului de lucru. Când lucrați direct în Excel, doriți ca acest lucru să se întâmple 99,9% din timp (excepția fiind dacă lucrați cu un registru de lucru extrem de mare). Cu toate acestea, acest lucru poate încetini cu adevărat codul VBA. Este o practică bună să setați calculele la manual la începutul macrocomenzilor și să restaurați calculele la sfârșitul macrocomenzilor. Dacă trebuie să recalculați registrul de lucru, puteți spune manual Excel să calculeze.

Dezactivați calculele automate

Puteți dezactiva calculul automat cu o macro setând-o la xlmanual. Utilizați următoarea bucată de cod VBA:

1 Application.Calculation = xlManual

Porniți din nou calculele automate

Pentru a porni înapoi calculul automat cu setarea xlAutomatic:

1 Aplicație.Calcul = xlAutomatic

Vă recomandăm să dezactivați calculele automate chiar la începutul procedurii și să reactivați calculele automate la final. Va arăta astfel:

Dezactivați Exemplu de macro pentru calcule automate

12345678 Sub Auto_Calcs_Example ()Application.Calculation = xlManual'Fă cevaAplicație.Calcul = xlAutomaticSfârșitul Sub

Calcul manual

Când calculele automate sunt dezactivate, puteți utiliza calculati comandă pentru a forța Excel să recalculeze:

1 calculati

De asemenea, puteți spune Excel să recalculeze doar o foaie de lucru individuală:

1 Fișe de lucru („foaia1”). Calculați

De asemenea, puteți spune VBA să recalculeze doar un interval (faceți clic pentru a citi articolul nostru despre metodele de calcul VBA)

Iată cum ar putea arăta acest lucru în interiorul unei macrocomenzi:

12345678910111213 Sub Auto_Calcs_Example_Manual_Calc ()Application.Calculation = xlManual'Fă ceva- Recalccalculati„Fă mai multe lucruriAplicație.Calcul = xlAutomaticSfârșitul Sub

Setări VBA - Cod de accelerare

Dacă obiectivul dvs. este să vă accelerați codul, ar trebui să luați în considerare și ajustarea acestor alte setări:

Dezactivarea actualizării ecranului poate face o mare diferență de viteză:

1 Application.ScreenUpdating = Fals

Dezactivarea barei de stare va face, de asemenea, o mică diferență:

1 Application.DisplayStatusBar = Fals

Dacă registrul de lucru conține evenimente, ar trebui să dezactivați evenimentele la începutul procedurilor (pentru a accelera codul și pentru a preveni buclele nesfârșite!):

1 Application.EnableEvents = Fals

În sfârșit, codul VBA poate fi încetinit atunci când Excel încearcă să recalculeze pauzele de pagină (Notă: nu toate procedurile vor fi afectate). Pentru a dezactiva DisplayPageBreaks utilizați această linie de cod:

1 ActiveSheet.DisplayPageBreaks = Fals

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave