Funkcie pracovného hárka v makrách VBA pomocou jazyka VBA v programe Microsoft Excel

Anonim

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