Niin hienolta kuin se näyttää katsomassa VBA -makroasi manipuloimasta näyttöä, voit auttaa makroasi toimimaan nopeammin, jos sammutat (poistat käytöstä) ScreenUpdating -toiminnon.
Poista näytön päivitys käytöstä
1. Voit poistaa ScreenUpdating -toiminnon käytöstä kirjoittamalla koodin alkuun tämän rivin:
1 | Application.ScreenUpdating = Väärä |
Ota näytön päivitys käyttöön
2. Ota ScreenUpdating uudelleen käyttöön kirjoittamalla koodin loppuun tämä rivi:
1 | Application.ScreenUpdating = Totta |
Esimerkki VBA -näytön päivityksestä
Menettelysi näyttää tältä:
1234567891011 | AlinäyttöUpdating_Example ()Application.ScreenUpdating = Väärä'Tee jotainAlue ("a1"). Kopioi alue ("b1")Alue ("a2"). Kopioi alue ("b2")Alue ("a3"). Kopioi alue ("b3")Application.ScreenUpdating = TottaEnd Sub |
Näytön päivitys Päivitä
Näytön päivityksen poistaminen käytöstä saa VBA -koodisi toimimaan PALJON nopeammin, mutta se tekee myös työstäsi ammattimaisempaa. Loppukäyttäjät eivät yleensä halua nähdä menettelyjesi kulissien takana olevia toimintoja (varsinkin kun menettely suoritetaan hitaasti). Et myöskään halua loppukäyttäjien näkevän kulissien takana olevaa toimintoa (esim. Piilotetut laskentataulukot). Suosittelen, että poistat (ja otat uudelleen käyttöön) ScreenUpdationin käytännössä kaikissa toimenpiteissäsi.
Joskus haluat kuitenkin näytön päivittyvän. Jos haluat päivittää näytön, sinun on otettava ScreenUpdating (Tilan päivitys) -komento väliaikaisesti uudelleen käyttöön:
123 | Application.ScreenUpdating = Totta'Tee jotainApplication.ScreenUpdating = Väärä |
VBA -asetukset - nopeutuskoodi
On olemassa useita muita asetuksia, joilla voit parantaa koodin nopeutta.
Automaattisten laskelmien poistaminen käytöstä voi vaikuttaa valtavaan nopeuteen:
1 | Application.Calculation = xlManual |
Tilapalkin poistaminen käytöstä tekee myös pienen eron:
1 | Application.DisplayStatusBar = Väärä |
Jos työkirjasi sisältää tapahtumia, sinun tulee yleensä poistaa tapahtumat käytöstä toimenpiteen alussa:
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 sivunvaihtojen näyttämisen käytöstä käyttämällä tätä koodiriviä:
1 | ActiveSheet.DisplayPageBreaks = Väärä |