Ažuriranje VBA zaslona - Ubrzanje postupka pokretanja koda

Ažuriranje zaslona programa Excel VBA

Ažuriranje zaslona VBA svojstvo je koje se koristi za izbjegavanje ili sprječavanje bljeskova ometanja tijekom izvođenja koda i ubrzavanje isključivanjem ažuriranja zaslona. Ažuriranje zaslona možemo isključiti postavljanjem ovog svojstva kao lažno.

Često možemo osjetiti kako excel zaslon poludi dok makronaredba radi, a to nas gotovo frustrira. Ali kako se nositi s tim situacijama i učiniti da kod radi brže od uobičajene spore stvari?

Ažuriranje zaslona je nešto što možemo primijetiti dok je excel makronaredba pokrenuta. Kada se zadatak izvršava, možemo primijetiti da naš zaslon ažurira vrijednosti dok makronaredba ne završi dodijeljeni zadatak. Dok naš zaslon treperi ili se osvježava, to dovodi do usporavanja programa Excel i za dovršavanje zadatka treba više vremena nego obično.

U VBA imamo svojstvo zvano "ScreenUpddating" i postavljamo ovo svojstvo na FALSE tako da uklanja proces ažuriranja zaslona dok je kôd pokrenut.

U ovom ćemo se članku oprostiti od gledanja akcijske drame na ekranu dok kôd radi. Danas ćete učiniti da vaš kôd radi brže i brže nego što je uobičajeno.

Kada koristiti značajku ažuriranja zaslona?

Pretpostavimo da sumnjate kada koristiti ovu tehniku. Pogledajte dolje navedene točke.

  • Kad petljate kroz velik broj stanica.
  • Slanje e-pošte s programa Excel VBA.
  • Prebacivanje između Excel knjiga.
  • Otvaranje novih radnih knjiga.

Kako koristiti značajku ažuriranja zaslona u VBA kodu?

Primjer # 1 - Isključite ažuriranje zaslona

Na primjer, pogledajte donji kod.

Kodirati:

Sub Screen_Updating () Dim RedCount as Long Dim ColumnCount As Long Dim MyBum As Long MyNumber = 0 For RowCount = 1 to 50 For ColumnCount = 1 To 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount) .Select Cells (RowCount, Column) .Value = MojBroj Sljedeći Broj stupca Slijedeći kraj reda Podbroj

Gore ima ugnežđeni VBA petlju za umetanje serijske brojeve iz prvog stupca na 50 th stupac i ponovno se vraća i umetak serijski broj, počevši od 51 iz drugog reda s 50 -og stupca.

Ovako, to će umetnuti dok ne dosegne 50 -og reda.

Dok se ovaj kôd izvodi, možete primijetiti kako zaslon treperi i ne možete učiniti ništa osim promatranja ovog ludog trenutka.

Da bismo izbjegli sve ovo, ažuriranje zaslona možemo dodati na FALSE.

Da bismo prvo pristupili značajci Ažuriranje zaslona, ​​moramo pristupiti objektu Aplikacija.

Kao što možemo vidjeti s objektom Application, imamo mnoga svojstva i metode. Dakle, odaberite Ažuriranje zaslona s popisa IntelliSense.

Napomena: Značajku Ažuriranje zaslona morate primijeniti odmah nakon deklaracije varijabli.

Nakon odabira svojstva Ažuriranje zaslona, ​​stavite znak jednakosti (=).

Kao što vidimo, dvije logičke vrijednosti, tj. FALSE & TRUE.

Da biste zaustavili ažuriranje zaslona, ​​postavite status na FALSE.

Kako se makronaredba prvo pokreće, ažurirat će status ažuriranja zaslona na FALSE i prijeći na sljedeći redak.

Budući da je makro izvršilo Ažuriranje zaslona na FALSE, neće dopustiti da se zaslon ažurira dok kôd izvršava svoj zadatak.

Primjer # 2 -

Na kraju uvijek postavite Ažuriranje zaslona na TRUE

Vidio sam da su mnogi ljudi postavili Ažuriranje zaslona na FALSE, ali zaboravili su ga vratiti na TRUE na kraju makronaredbe.

Na kraju makronaredbe uvijek vratite Ažuriranje zaslona na TRUE.

Kodirati:

Sub Screen_Updating () Dim RedCount kao Long Dim ColumnCount As Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 For RowCount = 1 to 50 For ColumnCount = 1 To 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount) .Select Celect. (RowCount, ColumnCount) .Value = MojBroj Sljedeći Broj stupaca Sljedeći RowCount Application.ScreenUpdating = True End Sub

Zanimljivi članci...