VBA ekraani värskendamine | Koodijooksuprotsessi kiirendamine

Exceli VBA ekraani värskendamine

VBA ekraani värskendamine on omadus, mida kasutatakse koodi käitamise ajal häirivate vilkumiste vältimiseks või vältimiseks ja ekraani värskendamise väljalülitamiseks selle kiireks muutmiseks. Saame ekraani värskendamise välja lülitada, määrates selle atribuudi valeks.

Sageli võime makro töötamise ajal tunda, et Exceli ekraan läheb hulluks ja me peame selle pärast peaaegu pettuma. Kuidas aga nende olukordadega toime tulla ja panna kood tavapärasest aeglasemast kiiremini tööle?

Ekraani värskendamine on midagi, mida võime Exceli makro töötamise ajal märgata. Kui ülesanne on käivitatud, võime märgata, et meie ekraan värskendab väärtusi, kuni makro lõpetab määratud ülesande. Kuna meie ekraan vilgub või värskendab, põhjustab see Exceli programmi aeglustumist ja ülesande täitmine võtab tavapärasest kauem aega.

VBA-s on meil atribuut nimega “ScreenUpdating” ja me määrasime selle atribuudi väärtuseks FALSE, nii et see välistab ekraani värskendamise koodi töötamise ajal.

Selles artiklis jätame hüvasti ekraanil toimuva draama vaatamisega, kuni kood töötab. Täna panete oma koodi tavapärasest ajast kiiremini käima.

Millal kasutada ekraani värskendamise funktsiooni?

Kui teil on kahtlusi, millal seda tehnikat kasutada. Vaadake allpool toodud punkte.

  • Kui liigute läbi suure hulga lahtrite.
  • E-kirjade saatmine Exceli VBA-st.
  • Exceli töövihikute vahetamine.
  • Uute töövihikute avamine.

Kuidas kasutada ekraani värskendamise funktsiooni VBA-koodis?

Selle Exceli malli VBA ScreenUpdating saate alla laadida siit - Exceli malli VBA ScreenUpdating

Näide # 1 - lülitage ekraani värskendamine välja

Näite saamiseks vaadake allolevat koodi.

Kood:

 Alamekraan_Updating () Hämarda RowCount kui pikk Dim ColumnCount Kui pikk Dim MyNumber As Long MyNumber = 0 RowCount = 1 kuni 50 for ColumnCount = 1 kuni 50 MyNumber = MinuNumber + 1 lahtrit (RowCount, ColumnCount). Valige lahtrid (RowCount, ColumnCount) .Value = MinuNumber Järgmine veergCount Järgmine RidaCount End Sub 

Eespool on sisestatud VBA-silmus, et sisestada seerianumbrid esimesest veerust 50. veergu ning tuleb uuesti tagasi ja sisestada seerianumber alates 51-st teisest reast kuni 50. veeruni.

Nii sisestatakse see kuni 50. reani jõudmiseni.

Selle koodi töötamise ajal võite märgata oma ekraani vilkumist ja te ei saa selle pöörase hetke vaatamise kõrvalt midagi muud teha.

Kõigi nende vältimiseks võime ekraani värskendamise lisada valele FALSE.

Funktsiooni Ekraani värskendamine juurde pääsemiseks peame esmalt pääsema rakenduse Objekt juurde.

Nagu näeme objektiga Application, on meil palju omadusi ja meetodeid. Niisiis, valige IntelliSense'i loendist Ekraani värskendamine.

Märkus. Ekraani värskendamise funktsiooni peate rakendama kohe pärast muutujate deklareerimist.

Pärast atribuudi Ekraani värskendamine valimist pange võrdusmärk (=).

Nagu näeme kahte tõeväärtust, st FALSE & TRUE.

Ekraani värskendamise peatamiseks määrake olekuks FALSE.

Nüüd, kui makro hakkab kõigepealt töötama, värskendab see ekraani värskendamise olekuks FALSE ja jätkab järgmist rida.

Kuna makro käivitas ekraani värskendamise valeks FALSE, ei luba see ekraani värskendada, kuni kood oma ülesannet täidab.

Näide 2 -

Määrake ekraani värskendamise lõpus alati väärtuseks TÕENE

Olen näinud paljusid inimesi, kes määrasid ekraani värskendamise väärtuseks FALSE, kuid unustasite makro lõpus selle tagasi seada väärtusele TRUE.

Seadke makro lõpus alati ekraanivärskenduse väärtuseks TÕENE.

Kood:

 Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 RowCount = 1 kuni 50 for ColumnCount = 1 kuni 50 MyNumber = Minu number + 1 lahtrit (RowCount, ColumnCount). Valige lahtrid. (RowCount, ColumnCount). Väärtus = MinuNumber Järgmine ColumnCount Järgmine RowCount Application.ScreenUpdating = True End Sub 

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