Tipy na rýchlosť VBA pre Excel 2016

VBA pre Excel 2016 je rýchly, ale nie vždy dostatočne rýchly. (Počítačové programy nie sú nikdy dosť rýchle.) Pokračujte v čítaní a objavte niekoľko príkladov programovania, ktoré môžete použiť na zrýchlenie svojich makier.

Vypína sa aktualizácia obrazovky

Pri vykonávaní makra si môžete sadnúť a sledovať všetky akcie na obrazovke, ktoré sa vyskytujú v makre. Aj keď to môže byť poučné, po správnom fungovaní makra je to často nepríjemné a môže to výrazne spomaliť výkon makra. Našťastie môžete zakázať aktualizáciu obrazovky, ktorá sa bežne vyskytuje pri spustení makra. Ak chcete vypnúť aktualizáciu obrazovky, použite nasledujúce vyhlásenie:

Application.ScreenUpdating = False

Ak chcete, aby používateľ videl, čo sa deje kedykoľvek počas makra, pomocou nasledujúceho príkazu znova zapnite aktualizáciu obrazovky:

Application.ScreenUpdating = Pravda

Ak chcete demonštrovať rozdiel v rýchlosti, vykonajte toto jednoduché makro, ktoré vyplní rozsah číslami:

Sub FillRange()
  Dim r as Long, c As Long
  Dim Number as Long
  Číslo = 0
  Pre r = 1 až 50
    Pre c = 1 až 50
      Číslo = Číslo + 1
      Bunky(r, c).Vyberte
      Bunky(r, c).Hodnota = číslo
    Ďalej c
  Ďalší r
End Sub

Vidíte, že sa každá bunka vyberá a do buniek sa zadáva hodnota. Teraz vložte nasledujúci príkaz na začiatok postupu a vykonajte ho znova:

Application.ScreenUpdating = False

Rozsah sa vyplní oveľa rýchlejšie a výsledok neuvidíte, kým sa makro nespustí a aktualizácia obrazovky nie je (automaticky) nastavená na hodnotu True.

Keď ladíte kód, vykonávanie programu niekedy skončí niekde uprostred bez toho, aby ste znova zapli aktualizáciu obrazovky. To niekedy spôsobí, že okno aplikácie Excelu úplne prestane reagovať. Cesta von z tohto zmrazeného stavu je jednoduchá: Vráťte sa do VBE a v okne Immediate vykonajte nasledujúci príkaz:

Application.ScreenUpdating = Pravda

Vypnutie automatického výpočtu

Ak máte pracovný hárok s mnohými zložitými vzorcami, možno zistíte, že môžete veci značne urýchliť nastavením režimu výpočtu na manuálny počas vykonávania makra. Po dokončení makra nastavte režim výpočtu späť na automatický.

Nasledujúce vyhlásenie nastavuje režim výpočtu Excel na manuálny:

Application.Calculation = xlCalculationManual

Vykonajte nasledujúci príkaz a nastavte režim výpočtu na automatický:

Application.Calculation = xlCalculationAutomatic

Ak váš kód používa bunky s výsledkami vzorca, vypnutie výpočtu znamená, že bunky sa neprepočítajú, pokiaľ Excel výslovne nepoviete, aby to urobil!

Odstránenie tých otravných výstražných správ

Ako viete, makro môže automaticky vykonávať sériu akcií. V mnohých prípadoch môžete spustiť makro a potom ísť do oddychovej miestnosti, zatiaľ čo Excel robí svoju prácu. Niektoré operácie Excelu však zobrazujú správy, ktoré vyžadujú ľudskú reakciu. Tieto typy správ znamenajú, že nemôžete nechať Excel bez dozoru, kým vykonáva vaše makro – pokiaľ nepoznáte tajný trik.

Tipy na rýchlosť VBA pre Excel 2016

Excel môžete prikázať, aby pri spustení makra nezobrazoval tieto typy upozornení.

Tajným trikom, ako sa vyhnúť týmto výstražným správam, je vloženie nasledujúceho príkazu VBA do makra:

Application.DisplayAlerts = False

Excel vykoná predvolenú operáciu pre tieto typy správ. V prípade odstránenia hárka je predvolená operácia Delete. Ak si nie ste istí, aká je predvolená operácia, vykonajte test a zistite, čo sa stane.

Po ukončení procedúry Excel automaticky obnoví vlastnosť DisplayAlerts na hodnotu True. Ak potrebujete znova zapnúť výstrahy pred ukončením postupu, použite toto vyhlásenie:

Application.DisplayAlerts = True

Zjednodušenie odkazov na objekty

Ako už asi viete, odkazy na predmety môžu byť veľmi zdĺhavé. Plne kvalifikovaný odkaz na objekt Range môže napríklad vyzerať takto:

Pracovné zošity („MyBook.xlsx“). Pracovné hárky („Hárok1“) _
  .Rozsah („Úroková sadzba“)

Ak vaše makro často používa tento rozsah, možno budete chcieť vytvoriť premennú objektu pomocou príkazu Set. Napríklad nasledujúci príkaz priraďuje tento objekt Range k objektovej premennej s názvom Rate:

Set Rate = Workbooks(“MyBook.xlsx”) _
  .Pracovné hárky(“Hárok1”).Rozsah(“Úroková sadzba”)

Po definovaní tejto premennej objektu môžete namiesto zdĺhavého odkazu použiť premennú Rate. Môžete napríklad zmeniť hodnotu bunky s názvom Úroková miera:

Rate.Value = 0,085

Je to oveľa jednoduchšie napísať ako nasledujúce vyhlásenie:

Pracovné zošity („MyBook.xlsx“). Pracovné hárky („Hárok1“). _
  Rozsah („Úroková sadzba“) = 0,085

Okrem zjednodušenia kódovania používanie objektových premenných značne zrýchľuje vaše makrá.

Deklarovanie typov premenných

Zvyčajne sa nemusíte starať o typ údajov, ktoré priradíte premennej. Excel spracuje všetky detaily za vás v zákulisí. Napríklad, ak máte premennú s názvom MyVar, môžete tejto premennej priradiť číslo ľubovoľného typu. Neskôr v postupe mu môžete dokonca priradiť textový reťazec.

Ak chcete, aby sa vaše procedúry vykonávali čo najrýchlejšie, povedzte Excelu, aký typ údajov bude priradený každej z vašich premenných. Toto je známe ako deklarovanie typu premennej.

Vo všeobecnosti by ste mali používať typ údajov, ktorý vyžaduje najmenší počet bajtov, ale stále dokáže spracovať všetky údaje, ktoré sú mu priradené. Keď VBA pracuje s údajmi, rýchlosť vykonávania závisí od počtu bajtov, ktoré má VBA k dispozícii. Inými slovami, čím menej bajtov údaje používajú, tým rýchlejšie môže VBA pristupovať k údajom a manipulovať s nimi. Výnimkou je dátový typ Integer. Ak je rýchlosť kritická, použite radšej typ údajov Long.

Ak používate objektovú premennú, môžete premennú deklarovať ako konkrétny typ objektu. Tu je príklad:

Stlmenie ako rozsah
Set Rate = Workbooks(“MyBook.xlsx”) _
  .Pracovné hárky(“Hárok1”).Rozsah(“Úroková sadzba”)

Použitie štruktúry With-End With

Potrebujete pre objekt nastaviť množstvo vlastností? Váš kód beží rýchlejšie, ak používate štruktúru With-End With. Ďalšou výhodou je, že váš kód môže byť ľahšie čitateľný.

Nasledujúci kód nepoužíva With-End With:

Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = Pravda
Výber.Orientácia = 0
Selection.ShrinkToFit = False
Selection.MergeCells = False

Tu je rovnaký kód, prepísaný tak, aby používal With-End With:

S výberom
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Pravda
  .Orientácia = 0
  .ShrinkToFit = False
  .MergeCells = False
Koniec s

Keď používate With-End With, uistite sa, že každý príkaz začína bodkou.


Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime iba na čítanie v systéme Windows

Ako zablokovať Microsoft Word otváranie súborov v režime len na čítanie v systéme Windows Microsoft Word otvára súbory v režime len na čítanie, takže ich nie je možné upravovať? Nebojte sa, metódy sú uvedené nižšie

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť nesprávnu tlač dokumentov Microsoft Word

Ako opraviť chyby pri tlači nesprávnych dokumentov Microsoft Word Chyby pri tlači dokumentov Word so zmeneným typom písma, chaotickými odsekmi, chýbajúcim textom alebo strateným obsahom sú pomerne časté. Avšak, nie

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Vymažte kresby perom a zvýrazňovačom na svojich PowerPointových snímkach

Ak ste použili pero alebo zvýrazňovač na kreslenie na powerpointové snímky počas prezentácie, môžete si kresby uložiť pre ďalšiu prezentáciu alebo ich vymazať, aby ste pri ďalšom zobrazení začali s čistými powerpointovými snímkami. Ak chcete vymazať kresby perom a zvýrazňovačom, postupujte podľa týchto pokynov: Vymazanie riadkov jedna na […]

Obsah knižnice štýlov v SharePointe 2010

Obsah knižnice štýlov v SharePointe 2010

Knižnica štýlov obsahuje súbory CSS, súbory XSL (Extensible Stylesheet Language) a obrázky používané preddefinovanými vzorovými stránkami, rozloženiami strán a ovládacími prvkami v SharePointe 2010. Ak chcete nájsť súbory CSS v knižnici štýlov publikačnej lokality: Vyberte Akcie lokality→Zobraziť Všetok obsah stránky. Zobrazí sa obsah stránky. Knižnica štýlov sa nachádza v […]

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Formátovanie čísel v tisíckach a miliónoch v správach Excel

Nezahlcujte svoje publikum obrovskými číslami. V programe Microsoft Excel môžete zlepšiť čitateľnosť svojich tabúľ a zostáv formátovaním čísel tak, aby sa zobrazovali v tisíckach alebo miliónoch.

Ako zdieľať a sledovať lokality SharePoint

Ako zdieľať a sledovať lokality SharePoint

Zistite, ako používať nástroje sociálnych sietí SharePoints, ktoré umožňujú jednotlivcom a skupinám komunikovať, spolupracovať, zdieľať a spájať sa.

Ako previesť dátumy do Julianových formátov v Exceli

Ako previesť dátumy do Julianových formátov v Exceli

Juliánske dátumy sa často používajú vo výrobných prostrediach ako časová pečiatka a rýchla referencia pre číslo šarže. Tento typ kódovania dátumu umožňuje maloobchodníkom, spotrebiteľom a servisným zástupcom identifikovať, kedy bol produkt vyrobený, a teda aj vek produktu. Juliánske dátumy sa používajú aj v programovaní, armáde a astronómii. Rôzne […]

Ako vytvoriť Access Web App

Ako vytvoriť Access Web App

V Accesse 2016 môžete vytvoriť webovú aplikáciu. Čo je to teda webová aplikácia? Web znamená, že je online a aplikácia je len skratka pre „aplikáciu“. Vlastná webová aplikácia je online databázová aplikácia, ku ktorej sa pristupuje z cloudu pomocou prehliadača. Vytvárate a udržiavate webovú aplikáciu vo verzii pre počítače […]

Panel rýchleho spustenia v SharePointe 2010

Panel rýchleho spustenia v SharePointe 2010

Väčšina stránok v SharePointe 2010 zobrazuje zoznam navigačných prepojení na paneli Rýchle spustenie pozdĺž ľavej strany stránky. Panel Rýchle spustenie zobrazuje prepojenia na odporúčaný obsah lokality, ako sú zoznamy, knižnice, lokality a publikačné stránky. Panel Rýchle spustenie obsahuje dva veľmi dôležité odkazy: Odkaz na celý obsah lokality: […]

Čo znamenajú chybové hlásenia v programe Excel?

Čo znamenajú chybové hlásenia v programe Excel?

Pre jednoduché problémy Riešiteľ v Exceli zvyčajne rýchlo nájde optimálne hodnoty premennej Riešiteľ pre cieľovú funkciu. V niektorých prípadoch má však Riešiteľ problém nájsť hodnoty premennej Riešiteľ, ktoré optimalizujú cieľovú funkciu. V týchto prípadoch Riešiteľ zvyčajne zobrazí hlásenie alebo chybové hlásenie, ktoré popisuje alebo diskutuje problém, ktorý […]