VBA ekrano atnaujinimas | Pagreitinti kodo paleidimo procesą

„Excel VBA“ ekrano atnaujinimas

VBA ekrano atnaujinimas yra ypatybė, naudojama norint išvengti trikdžių blyksėjimo arba užkirsti kelią vykdant kodą ir padaryti jį greitą išjungiant ekrano atnaujinimą. Ekrano atnaujinimą galime išjungti nustatydami šią ypatybę kaip klaidingą.

Dažnai galime pajusti, kad „Excel“ ekranas eina iš proto, kai veikia makrokomanda, ir tuo beveik nusiviliame. Bet kaip elgtis šiose situacijose ir priversti kodą veikti greičiau nei įprastas lėtas dalykas?

Ekrano atnaujinimą galime pastebėti, kai veikia „Excel“ makrokomanda. Kai užduotis vykdoma, galime pastebėti, kad mūsų ekranas atnaujina reikšmes, kol makrokomanda baigs priskirtą užduotį. Kadangi mūsų ekranas mirksi ar gaivina, „Excel“ programa sulėtėja ir užduoties atlikimas užtrunka ilgiau nei įprasta.

VBA turime ypatybę, vadinamą „ScreenUpdating“, ir nustatėme šią ypatybę FALSE, kad ji pašalintų ekrano atnaujinimo procesą, kol vykdomas kodas.

Šiame straipsnyje atsisveikinsime su veiksmo dramos žiūrėjimu ekrane, kol kodas veikia. Šiandien kodą leisite paleisti greičiau ir greičiau nei įprasta.

Kada naudoti ekrano atnaujinimo funkciją?

Jei kyla abejonių, kada naudoti šią techniką. Pažvelkite į žemiau pateiktus punktus.

  • Kai lankotės per daugybę langelių.
  • El. Laiškų siuntimas iš „Excel VBA“.
  • „Excel“ darbaknygių perjungimas.
  • Naujų darbo knygų atidarymas.

Kaip naudoti ekrano atnaujinimo funkciją VBA kode?

Šį „VBA ScreenUpdating Excel“ šabloną galite atsisiųsti čia - „VBA ScreenUpdating Excel“ šablonas

1 pavyzdys - išjunkite ekrano atnaujinimą

Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.

Kodas:

 Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount as Long Dim MyNumber As Long MyNumber = 0 for RowCount = 1 to 50 for ColumnCount = 1 to 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount). Pasirinkite langelius (RowCount, ColumnCount) .Value = ManoNumeris Kitas stulpelisSkaičius Kita eilutėSkaita Pabaiga 

Pirmiau buvo įdėta VBA kilpa, kad būtų galima įterpti serijos numerius iš pirmojo stulpelio į 50-ąjį stulpelį ir vėl grįžti, o eilės numerį įterpti pradedant nuo 51 nuo antros eilutės iki 50-osios kolonos.

Taip jis bus įterptas, kol pasieks 50-ą eilę.

Kol šis kodas veikia, galite pastebėti, kad ekranas mirga, ir jūs negalite nieko padaryti, išskyrus tai, kad stebite šį beprotišką momentą.

Norėdami to išvengti, galime pridėti ekrano naujinimą į FALSE.

Norėdami pasiekti „Screen Updating“ funkciją, pirmiausia turime pasiekti „Application“ objektą.

Kaip matome su „Application“ objektu, turime daug savybių ir metodų. Taigi, „IntelliSense“ sąraše pasirinkite Ekrano atnaujinimas.

Pastaba: Ekrano atnaujinimo funkciją turite pritaikyti iškart po kintamųjų deklaravimo.

Pasirinkę ypatybę „Ekrano atnaujinimas“, uždėkite lygybės ženklą (=).

Kaip matome dvi logines reikšmes, ty FALSE & TRUE.

Norėdami sustabdyti ekrano atnaujinimą, nustatykite būseną FALSE.

Dabar, kai makrokomanda pradeda veikti pirmiausia, ji atnaujins ekrano atnaujinimo būseną į FALSE ir pereis prie kitos eilutės.

Kadangi makrokomanda vykdė ekrano atnaujinimą į FALSE, tai neleis ekranui atnaujinti, kol kodas vykdys savo užduotį.

2 pavyzdys -

Visada nustatykite ekrano atnaujinimą į „TRUE“

Mačiau, kad daugelis žmonių nustatė ekrano atnaujinimą į „NETIESA“, tačiau makrokomandos pabaigoje pamiršau jį vėl nustatyti į „TRUE“.

Makrokomandos pabaigoje visada nustatykite ekrano atnaujinimą atgal į TRUE.

Kodas:

 Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount as Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 RowCount = 1-50 for ColumnCount = 1-50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount). Pasirinkite langelius. (RowCount, ColumnCount) .Value = ManoNumeris Kitas ColumnCount Kitas RowCount taikymas.ScreenUpdating = True End Sub 

$config[zx-auto] not found$config[zx-overlay] not found