/ / Aplikačný objekt programu Excel VBA

Aplikačný objekt programu Excel VBA

WorksheetFunction | ScreenUpdating | DisplayAlerts | Kalkulácia

Matkou všetkých objektov je samotný program Excel. Hovoríme to Objekt aplikácie, Objekt aplikácie umožňuje prístup k množstvu možností súvisiacich s aplikáciou Excel.

WorksheetFunction

Môžete použiť vlastnosť WorksheetFunction v Excel VBA prístup k funkciám programu Excel.

1. Napríklad na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúci riadok kódu:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Po kliknutí na tlačidlo príkazu na pracovnom hárku Excel VBA vypočíta priemer hodnôt v bunke A1 a bunke A2 a umiestni výsledok do bunky A3.

Funkcia pracovného hárka v programe Excel VBA

Poznámka: namiesto funkcie Application.WorksheetFunction.Priemer, jednoducho použite funkciu WorksheetFunction.Average. Ak sa pozriete na vzorec, môžete vidieť, že samotný vzorec nie je vložený do bunky A3. Ak chcete vložiť vzorec sám do bunky A3, použite nasledujúci riadok kódu:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

Niekedy môže byť užitočné zakázať aktualizáciu obrazovky (aby sa zabránilo blikaniu) pri vykonávaní kódu. V dôsledku toho bude váš kód bežať rýchlejšie.

1. Napríklad na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúce riadky kódu:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

Po kliknutí na príkazové tlačidlo na pracovnom hárku Excel VBA zobrazuje každú hodnotu za zlomok sekundy, čo môže chvíľu trvať.

ScreenUpdating

2. Ak chcete proces zrýchliť, aktualizujte kód nasledovne.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

V dôsledku toho sa váš kód spustí oveľa rýchlejšie a uvidíte iba konečný výsledok (10000).

DisplayAlerts

Môžete inštruovať Excel VBA, aby počas spúšťania kódu nezobrazoval upozornenia.

1. Napríklad na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúci riadok kódu:

ActiveWorkbook.Close

Po kliknutí na príkazové tlačidlo na pracovnom hárku aplikácia Excel VBA zatvorí súbor programu Excel a požiada vás o uloženie vykonaných zmien.

DisplayAlerts

2. Pokyny Excel VBA, aby nezobrazovalo toto upozornenie pri vykonávaní kódu, aktualizujte kód nasledovne.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

V dôsledku toho Excel VBA zatvorí súbor programu Excel bez toho, aby vás požiadal o uloženie vykonaných zmien. Zmeny sa stratia.

Kalkulácia

V predvolenom nastavení je výpočet nastavený na automatické. V dôsledku toho Excel automaticky prepočíta zošitie vždy, keď sa zmení hodnota ovplyvňujúca vzorec. Ak váš zošit obsahuje veľa zložitých vzorcov, môžete makro zrýchliť nastavením výpočtu na manuálne.

1. Napríklad na pracovný hárok umiestnite príkazové tlačidlo a pridajte nasledujúci riadok kódu:

Application.Calculation = xlCalculationManual

Po kliknutí na tlačidlo príkazu v pracovnom hárku Excel VBA nastaví výpočet na manuálne.

2. Môžete to overiť kliknutím na Súbor, Možnosti, Vzorce.

Možnosti výpočtu

3. Teraz keď zmeníte hodnotu bunky A1, hodnota bunky B1 sa prepočíta.

Ručná kalkulačka

Siet môžete manuálne prepočítať stlačením klávesu F9.

4. Vo väčšine situácií nastavíte automatický výpočet na konci kódu. Jednoducho pridajte nasledujúci riadok kódu, aby ste to dosiahli.

Application.Calculation = xlCalculationAutomatic
Tiež si prečítajte: