Posodabljanje zaslona VBA - Pospešitev postopka izvajanja kode

Posodabljanje zaslona programa Excel VBA

Posodabljanje zaslona VBA je lastnost, ki se uporablja, da se med izvajanjem kode izogne ​​ali prepreči utripanje motenj in jo pospeši z izklopom posodabljanja zaslona. Posodobitev zaslona lahko izklopimo tako, da to lastnost nastavimo kot false.

Pogosto lahko začutimo, da zaslon excel požene, medtem ko makro deluje, in smo zaradi tega skoraj razočarani. Kako pa se spoprijeti s temi situacijami in narediti kodo hitrejšo od običajne počasne stvari?

Posodobitev zaslona je nekaj, kar lahko opazimo med izvajanjem makra excel. Ko se naloga opravi, lahko opazimo, da naš zaslon posodablja vrednosti, dokler makro ne konča dodeljene naloge. Ko zaslon utripa ali se osveži, vodi do upočasnitve programa excel in traja dlje časa kot običajno za dokončanje naloge.

V VBA imamo lastnost, imenovano "ScreenUpdating", in to lastnost nastavimo na FALSE, tako da bo med izvajanjem kode odpravila postopek posodabljanja zaslona.

V tem članku se bomo poslovili od gledanja akcijske drame na zaslonu med izvajanjem kode. Danes boste poskrbeli, da bo koda delovala hitreje in hitreje kot običajno.

Kdaj uporabiti funkcijo posodabljanja zaslona?

Recimo, da dvomite, kdaj uporabljati to tehniko. Poglejte v spodnje točke.

  • Ko pregledujete veliko število celic.
  • Pošiljanje e-pošte iz programa Excel VBA.
  • Preklapljanje med Excelovimi delovnimi zvezki.
  • Odpiranje novih delovnih zvezkov.

Kako uporabiti funkcijo posodabljanja zaslona v kodi VBA?

Primer # 1 - Izklopite posodabljanje zaslona

Na primer, poglejte spodnjo kodo.

Koda:

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 Celice (RowCount, ColumnCount) .Izberite celice (RowCount, Column .Value = MyNumber Naprej Število stolpcev Naslednja vrstica Konec Sub

Zgoraj ima nested VBA zanko za vstavitev serijske številke od prve kolone z 50 th stolpec in spet pride nazaj in vstaviti zaporedno številko, začenši od 51 z druge vrste do 50 th stolpec.

Kot je ta, bo vstavite, dokler ne doseže 50 na th vrstico.

Medtem ko se ta koda izvaja, lahko opazite, da zaslon utripa in ne morete storiti ničesar, razen da bi gledali ta nori trenutek.

Da bi se vsem tem izognili, lahko posodabljanje zaslona dodamo na FALSE.

Če želimo najprej dostopati do funkcije Posodabljanje zaslona, ​​moramo dostopati do objekta Application.

Kot lahko vidimo pri objektu Application, imamo veliko lastnosti in metod. Na seznamu IntelliSense izberite Posodobitev zaslona.

Opomba: Funkcijo posodabljanja zaslona morate uporabiti takoj po izjavi spremenljivk.

Po izbiri lastnosti Posodabljanje zaslona postavite znak enačbe (=).

Kot lahko vidimo, dve logični vrednosti, to je FALSE & TRUE.

Če želite ustaviti posodabljanje zaslona, ​​nastavite stanje na FALSE.

Zdaj, ko se makro začne najprej izvajati, bo posodobil stanje posodabljanja zaslona na FALSE in nadaljeval v naslednjo vrstico.

Ker je makro izvedel posodabljanje zaslona na FALSE, zaslona ne bo mogel posodobiti, medtem ko koda izvaja svojo nalogo.

2. primer -

Na koncu nastavitve posodabljanja zaslona vedno nastavite na TRUE

Veliko ljudi sem videl, da je posodabljanje zaslona nastavilo na FALSE, vendar sem ga pozabil nastaviti na TRUE na koncu makra.

Na koncu makra vedno nastavite posodabljanje zaslona nazaj na TRUE.

Koda:

Sub Screen_Updating () Dim RowCount As 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 Celice (RowCount, ColumnCount). (RowCount, ColumnCount) .Value = MyNumber Naslednji ColumnCount Next RowCount Application.ScreenUpdating = True End Sub

Zanimive Članki...