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 my jsme tím téměř frustrovaní. 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 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 tuto vlastnost jsme nastavili 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?

Pokud 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?

Tuto šablonu Excel Update VBA ScreenUpdating si můžete stáhnout zde - Šablona Excel VBA ScreenUpdating

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

Například se podívejte 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 uvedené má vnořenou smyčku VBA pro vložení sériových čísel z prvního sloupce do 50. sloupce a opět se vrací a vloží sériové číslo začínající od 51 z druhého řádku do 50. sloupce.

Takto se bude vkládat, dokud nedosáhne 50. řádku.

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 tomu všem vyhnuli, můžeme přidat aktualizaci obrazovky na FALSE.

Pro přístup k funkci Aktualizace obrazovky musíme nejprve 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 můžeme vidět dvě booleovské hodnoty, tj. FALSE & TRUE.

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

Nyní, když se makro spustí nejprve, 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 

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