Ak máte v kóde VBA odkaz na určité funkcie pracovného hárka, ako sú Sum, Vlookup atď., Môžete ich použiť priamo pomocou objektu Application. Budeme teda používať funkcie ako -
Application.WorksheetFunction.Sum alebo Application.WorksheetFunction.Vlookup kde WorksheetFunction je metóda objektu Application.
Vzhľadom na to, že máme toto testovacie makro, ak píšeme
Application.WorksheetFunction.
Zobrazí sa kontextové okno, v ktorom sú vzorce uvedené nižšie na obrázku
Napríklad, ak chcete súčet hodnôt tohto rozsahu v stĺpci A pomocou vba -
Nechajme premennú s názvom SalesTotal, ktorá do nej sumu uloží. Na získanie súčtu v SalesTotal použijeme v štandardnom module nasledujúci kód VBA:
Vedľajšie makro4 ()Dim SalesTotal as Long
SalesTotal = Application.WorksheetFunction.Sum (rozsah ("A2: A6"))
MsgBox SalesTotal
Koniec pod
Ak chcete skopírovať vyššie uvedený kód do svojho súboru,
- Na klávesnici stlačte kombináciu klávesov Alt + F11.
- Na ľavej strane uvidíte objekty programu Microsoft Excel.
- Kliknite pravým tlačidlom myši a zvoľte Vložiť.
- Potom kliknite na modul.
- Skopírujte kód do okna kódu vpravo.
Keď použijeme toto ukážkové makro, zobrazí sa nám správa ukazujúca hodnotu, ktorá je uložená v súčte tržieb a môže byť použitá v ďalších riadkoch kódu v makre.
Výstup, ktorý dostaneme, je -
Ak chcete, aby sa SalesTotal zobrazoval v bunke A7, môžete zmeniť riadok kódu z
Msgbox SalesTotaldo Pracovné listy („List1“). Rozsah („A7“). Hodnota = SalesTotal
Vzhľadom na to, že pre tieto údaje v bunke A9 potrebujeme aj priemerné tržby. Môžeme použiť kód uvedený nižšie
Pod makro 5 ()Dim SalesTotal as Long
S pracovnými listami („List1“)
SalesTotal = Application.WorksheetFunction.Sum (.Range ("A2: A6"))
.Range („A7“). Hodnota = SalesTotal
.Range ("A9"). Hodnota = Application.WorksheetFunction.Average (.Range ("A2: A6"))
Ukončiť s
Koniec pod
V porovnaní s predchádzajúcim kódom došlo k malým zmenám.
- Namiesto použitia premennej na priemer som túto hodnotu po výpočte priamo vyplnil do bunky A9. Preto uvidíte riadok .Range („A9“). Hodnota = Application.WorksheetFunction.Average (.Range („A2: A6“))
- Riadok msgbox bol odstránený.
- Hodnota v premennej SalesTotal ide do bunky A7.
- V ideálnom prípade môžete nahradiť rovnaký riadok kódu, ktorý bol použitý pre priemer, pre riadok súčtového kódu
SalesTotal = Application.WorksheetFunction.Sum (.Range („A2: A6“))
.Rozsah („A7“). Hodnota = Celkový súčet
S
.Range („A7“). Hodnota = Application.WorksheetFunction.Sum (.Range („A2: A6“))
Bol však zachovaný, aby ste porozumeli rôznym spôsobom kódovania tej istej úlohy. Podobne môžeme pri používaní Application.WorksheetFunction používať aj ďalšie funkcie. Všetky tie funkcie, ktoré môžeme použiť priamo v pracovnom hárku, ich môžeme použiť tu.
To uľahčuje používanie funkcií v kóde, aby sme mohli vypočítať požadované vzorce bez toho, aby sme museli vytvárať kód pre vzorec.
Ak sa vám páčili naše blogy, zdieľajte ich so svojimi priateľmi na Facebooku. A tiež nás môžete sledovať na Twitteri a Facebooku.
Radi by sme vás počuli, dajte nám vedieť, ako môžeme zlepšiť, doplniť alebo inovovať našu prácu a zlepšiť ju pre vás. Napíšte nám na e -mailová stránka