Koliko god izgledalo kul dok gledate kako vaša VBA makro manipulira zaslonom, možete pomoći svom makronaredbi da radi brže ako isključite (onemogućite) ažuriranje zaslona.
Onemogućite ažuriranje zaslona
1. Da biste onemogućili ažuriranje zaslona, na početak koda stavite ovaj redak:
1 | Application.ScreenUpdating = Netačno |
Omogući ažuriranje zaslona
2. Da biste ponovno omogućili ažuriranje zaslona, na kraj koda stavite ovaj redak:
1 | Application.ScreenUpdating = Istina |
Primjer ažuriranja VBA zaslona
Vaš će postupak tada izgledati ovako:
1234567891011 | Ažuriranje podzaslona_primjer ()Application.ScreenUpdating = Netačno'Učini neštoRaspon ("a1"). Kopiraj raspon ("b1")Raspon ("a2"). Kopiraj raspon ("b2")Raspon ("a3"). Kopiraj raspon ("b3")Application.ScreenUpdating = IstinaKraj podm |
Ažuriranje zaslona Osvježavanje
Onemogućavanje ažuriranja zaslona učinit će vaš VBA kod mnogo bržim, ali će i vaš rad učiniti profesionalnijim. Krajnji korisnici obično ne žele vidjeti zakulisne radnje vaših postupaka (osobito ako postupak teče sporo). Također, možda ne želite da krajnji korisnici vide funkcionalnost iza kulisa (npr. Skriveni radni listovi). Preporučujem onemogućavanje (i ponovno omogućavanje) ažuriranja zaslona u gotovo svim vašim postupcima.
Međutim, postoje slučajevi kada želite osvježiti zaslon. Da biste osvježili zaslon, morat ćete privremeno ponovo uključiti Ažuriranje zaslona (nema naredbe za osvježavanje zaslona):
123 | Application.ScreenUpdating = Istina'Učini neštoApplication.ScreenUpdating = Netačno |
VBA postavke - kod za ubrzanje
Postoji nekoliko drugih postavki s kojima se možete igrati kako biste poboljšali brzinu koda.
Onemogućavanje automatskih izračuna može napraviti ogromnu razliku u brzini:
1 | Primjena.Izračun = xlPriručnik |
Onemogućavanje statusne trake također će napraviti malu razliku:
1 | Application.DisplayStatusBar = Netačno |
Ako vaša radna knjiga sadrži događaje, obično biste trebali onemogućiti događaje na početku postupka:
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). Za onemogućavanje prikaza prijeloma stranice upotrijebite ovaj redak koda:
1 | ActiveSheet.DisplayPageBreaks = Netačno |