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 dėl to beveik nusivyliame. 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 vykdoma užduotis, galime pastebėti, kad ekranas atnaujina reikšmes, kol makrokomanda baigs priskirtą užduotį. Kai mūsų ekranas mirksi ar gaivina, tai lėtina „Excel“ programą 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ą?

Tarkime, kad jūs abejojate, 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?

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 yra įdėta VBA kilpa, skirta įterpti serijos numerius iš pirmojo stulpelio į 50 -ąjį stulpelį, vėl grįžti ir įterpti serijos numerį, 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ą.

Kad išvengtume viso to, ekrano atnaujinimą galime pridėti prie FALSE.

Norėdami pirmiausia pasiekti „Screen Updating“ funkciją, 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 loginės reikšmės, 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, neleis ekranui atnaujinti, kol kodas vykdys savo užduotį.

2 pavyzdys -

Visada nustatykite ekrano naujinimą ties TIESA

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

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). Vertė = Mano numeris Kitas ColumnCount Kitas RowCount taikymas.ScreenUpdating = True End Sub

Įdomios straipsniai...