Aktualizace obrazovky VBA - Urychlení procesu spouštění kódu

Aktualizace obrazovky aplikace Excel VBA

Aktualizace obrazovky VBA je vlastnost používaná k zabránění nebo zabránění rozptýlení záblesků při spuštění kódu a zrychlení vypnutím aktualizace obrazovky. Aktualizaci obrazovky můžeme vypnout nastavením této vlastnosti na hodnotu false.

Když je makro spuštěno, často cítíme, že se obrazovka aplikace Excel zbláznila, a to nás skoro frustruje. Jak ale řešit tyto situace a zajistit, aby kód běžel rychleji než obvykle pomalá věc?

Aktualizace obrazovky je něco, čeho si můžeme všimnout, když je spuštěno makro aplikace Excel. Když se úloha provádí, můžeme si všimnout, že naše obrazovka aktualizuje hodnoty, dokud makro nedokončí přiřazenou úlohu. Jak naše obrazovka bliká nebo osvěžuje, vede to ke zpomalení programu Excel a dokončení úkolu trvá déle než obvykle.

Ve VBA máme vlastnost nazvanou „ScreenUpdating“ a nastavili jsme tuto vlastnost na FALSE, aby eliminovala proces aktualizace obrazovky, když je kód spuštěn.

V tomto článku se rozloučíme se sledováním akčního dramatu na obrazovce za běhu kódu. Dnes zajistíte, aby váš kód běžel rychleji a rychleji než obvykle.

Kdy použít funkci aktualizace obrazovky?

Předpokládejme, že máte pochybnosti, kdy použít tuto techniku. Podívejte se na níže uvedené body.

  • Když procházíte velkým počtem buněk.
  • Odesílání e-mailů z aplikace Excel VBA.
  • Přepínání mezi sešity aplikace Excel.
  • Otevírání nových sešitů.

Jak používat funkci aktualizace obrazovky v kódu VBA?

Příklad č. 1 - Vypnutí aktualizace obrazovky

Podívejte se například na níže uvedený kód.

Kód:

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). Select Cells (RowCount, ColumnCount) .Value = MyNumber Další ColumnCount Další RowCount End Sub

Výše má vnořené VBA smyčky vložit sériová čísla z prvního sloupce do 50 th kolony a znovu se vrátí a vložka pořadové číslo počínaje 51 z druhé řady na 50 tého sloupce.

Stejně jako to bude vložit, dokud nedosáhne 50 th řádek.

Když je tento kód spuštěný, můžete si všimnout blikání obrazovky a nemůžete dělat nic jiného než sledovat tento šílený okamžik.

Abychom se všem těmto problémům vyhnuli, můžeme přidat aktualizaci obrazovky na FALSE.

Chcete-li nejprve získat přístup k funkci Aktualizace obrazovky, musíme získat přístup k objektu aplikace.

Jak vidíme u objektu Application, máme mnoho vlastností a metod. Takže vyberte Aktualizace obrazovky ze seznamu IntelliSense.

Poznámka: Funkci Aktualizace obrazovky musíte použít bezprostředně po deklaraci proměnných.

Po výběru vlastnosti Aktualizace obrazovky vložte znaménko rovná se (=).

Jak vidíme, dvě logické hodnoty, tj. FALSE & TRUE.

Chcete-li zastavit aktualizaci obrazovky, nastavte stav na FALSE.

Nyní, když se makro spustí jako první, aktualizuje stav aktualizace obrazovky na FALSE a pokračuje na další řádek.

Vzhledem k tomu, že makro provedlo aktualizaci obrazovky na hodnotu FALSE, nedovolí aktualizaci obrazovky, zatímco kód provádí svůj úkol.

Příklad č. 2 -

Na konci vždy nastavte aktualizaci obrazovky na TRUE

Viděl jsem mnoho lidí nastavit aktualizaci obrazovky na FALSE, ale na konci makra jsem ji zapomněl nastavit zpět na TRUE.

Na konci makra vždy nastavte aktualizaci obrazovky zpět na TRUE.

Kód:

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 Cells (RowCount, ColumnCount). Select Cells (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount Application.ScreenUpdating = True End Sub

Zajímavé články...