Išjunkite ekrano atnaujinimą - VBA kodo pavyzdžiai

Kad ir kaip būtų šaunu žiūrėti, kaip jūsų VBA makrokomanda manipuliuoja ekranu, galite padėti savo makrokomandai veikti greičiau, jei išjungiate (išjungiate) „ScreenUpdating“.

Išjungti „ScreenUpdating“

1. Norėdami išjungti „ScreenUpdating“, kodo pradžioje įdėkite šią eilutę:

1 Application.ScreenUpdating = Netiesa

Įgalinti „ScreenUpdating“

2. Norėdami iš naujo įjungti „ScreenUpdating“, kodo pabaigoje įrašykite šią eilutę:

1 Application.ScreenUpdating = Tiesa

VBA ekrano atnaujinimo pavyzdys

Tada jūsų procedūra atrodys taip:

1234567891011 Sub ScreenUpdating_Example ()Application.ScreenUpdating = Netiesa'Daryk ką norsDiapazonas („a1“). Kopijuoti diapazoną („b1“)Diapazonas („a2“). Kopijuoti diapazoną („b2“)Diapazonas ("a3"). Kopijuoti diapazonas ("b3")Application.ScreenUpdating = TiesaPabaiga Sub

Ekrano atnaujinimo atnaujinimas

Išjungus „ScreenUpdating“ jūsų VBA kodas bus paleistas DAUG greičiau, tačiau jūsų darbas atrodys profesionaliau. Galutiniai vartotojai paprastai nenori matyti jūsų procedūrų veiksmų užkulisiuose (ypač kai procedūra vyksta lėtai). Be to, galbūt nenorite, kad galutiniai vartotojai matytų užkulisių funkcijas (pvz., Paslėptus darbalapius). Rekomenduoju išjungti (ir iš naujo įjungti) „ScreenUpdating“ praktiškai visose jūsų procedūrose.

Tačiau kartais reikia, kad ekranas būtų atnaujintas. Norėdami atnaujinti ekraną, turėsite laikinai vėl įjungti „ScreenUpdating“ (nėra ekrano „atnaujinimo“ komandos):

123 Application.ScreenUpdating = Tiesa'Daryk ką norsApplication.ScreenUpdating = Netiesa

VBA nustatymai - pagreitinimo kodas

Norėdami pagerinti kodo greitį, galite žaisti su keletu kitų nustatymų.

Išjungus automatinius skaičiavimus, greitis gali labai skirtis:

1 Application.Calculation = xlManual

Išjungus būsenos juostą taip pat bus nedidelis skirtumas:

1 Application.DisplayStatusBar = Netiesa

Jei jūsų darbaknygėje yra įvykių, paprastai turite išjungti įvykius procedūros pradžioje:

1 Application.EnableEvents = Netiesa

Galiausiai jūsų VBA kodas gali būti sulėtintas, kai „Excel“ bando iš naujo apskaičiuoti puslapio pertraukas (Pastaba: tai neturės įtakos visoms procedūroms). Norėdami išjungti puslapių pertraukų rodymą, naudokite šią kodo eilutę:

1 ActiveSheet.DisplayPageBreaks = Netiesa

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave