Aina kun päivität solun arvon, Excel käy läpi työkirjan uudelleenlaskennan. Kun työskentelet suoraan Excelissä, haluat tämän tapahtuvan 99,9% ajasta (poikkeus on, jos työskentelet erittäin suuren työkirjan kanssa). Tämä voi kuitenkin todella hidastaa VBA -koodiasi. On hyvä käytäntö asettaa laskutoimitukset manuaaliseksi makrojen alussa ja palauttaa laskelmat makrojen lopussa. Jos haluat laskea työkirjan uudelleen, voit käsin laskea Excelin manuaalisesti.
Poista automaattiset laskelmat käytöstä
Voit poistaa makron automaattisen laskennan käytöstä asettamalla sen arvoksi xlmanual. Käytä seuraavaa VBA -koodin osaa:
1 | Application.Calculation = xlManual |
Ota automaattiset laskelmat takaisin käyttöön
Automaattisen laskennan ottaminen uudelleen käyttöön asetuksella xlAutomatic:
1 | Application.Calculation = xlAutomatic |
Suosittelen poistamaan automaattiset laskelmat käytöstä heti menettelyn alussa ja ottamaan automaattiset laskelmat uudelleen käyttöön lopussa. Se näyttää tältä:
Poista käytöstä Automaattiset laskutoimitukset -esimerkki
12345678 | Aliautomaattiset_laskut_esimerkki ()Application.Calculation = xlManual'Tee jotainApplication.Calculation = xlAutomaticEnd Sub |
Manuaalinen laskeminen
Kun Automaattiset laskelmat on poistettu käytöstä, voit käyttää Laskea komento pakottaa Excel laskemaan uudelleen:
1 | Laskea |
Voit myös pyytää Exceliä laskemaan uudelleen vain yksittäisen laskentataulukon:
1 | Laskentataulukot ("arkki1") |
Voit myös pyytää VBA: ta laskemaan uudelleen vain alueen (napsauta ja lue artikkeli VBA -laskentamenetelmistä)
Tältä makro saattaa näyttää:
12345678910111213 | Aliautomaattinen_laskenta_esimerkki_käsikirjalaskuri ()Application.Calculation = xlManual'Tee jotain'Laske uudelleenLaskea'Tee enemmän asioitaApplication.Calculation = xlAutomaticEnd Sub |
VBA -asetukset - nopeutuskoodi
Jos tavoitteesi on nopeuttaa koodiasi, harkitse myös näiden muiden asetusten säätämistä:
Näytön päivityksen poistaminen käytöstä voi vaikuttaa suuresti nopeuteen:
1 | Application.ScreenUpdating = Väärä |
Tilapalkin poistaminen käytöstä tekee myös pienen eron:
1 | Application.DisplayStatusBar = Väärä |
Jos työkirjasi sisältää tapahtumia, sinun on myös poistettava tapahtumat käytöstä toimenpiteiden alussa (nopeuttaaksesi koodia ja estääksesi loputtomat silmukat!):
1 | Application.EnableEvents = Väärä |
Lopuksi VBA-koodisi voi hidastua, kun Excel yrittää laskea sivunvaihdot uudelleen (Huomautus: tämä ei vaikuta kaikkiin menettelyihin). Voit poistaa DisplayPageBreaksin käytöstä käyttämällä tätä koodiriviä:
1 | ActiveSheet.DisplayPageBreaks = Väärä |