Existuje mnoho spôsobov, ako používať funkcie vo VBA. VBA je dodávaný s mnohými vstavanými funkciami. Môžete dokonca vytvárať vlastné funkcie (UDF). Mnoho funkcií Excelu však môžete vo VBA využívať aj pomocou aplikácie Application.WorksheetFunction.
Ako používať funkcie pracovného hárka vo VBA
Na prístup k funkcii Excelu vo VBA pridajte Application.WorksheetFunction pred funkciu, ktorú chcete zavolať. V nižšie uvedenom príklade budeme volať maximálnu funkciu Excelu:
12 | Dim maxvalue as longmaxvalue = Application.WorksheetFunction.Max (rozsah ("a1"). hodnota, rozsah ("a2"). hodnota) |
Syntax funkcií je rovnaká, ale argumenty funkcie budete zadávať rovnako ako ostatné funkcie VBA.
Všimnite si, že syntax maximálnej funkcie sa objaví pri písaní (podobne ako pri funkciách VBA):
Pracovný listFunkčná metóda
WorksheetFunction je metóda objektu aplikácie. Umožňuje vám prístup k mnohým (nie všetkým) štandardným funkciám pracovného hárka programu Excel. Spravidla nezískate prístup k žiadnym funkciám pracovného hárka, ktoré majú zodpovedajúcu verziu VBA.
Nasleduje zoznam mnohých najbežnejších funkcií pracovného hárka.
Application.WorksheetFunction vs. Application
V skutočnosti existujú dva spôsoby prístupu k týmto funkciám:
Application.WorksheetFunction (ako je uvedené vyššie):
1 | maxvalue = Application.WorksheetFunction.Max (rozsah ("a1"). hodnota, rozsah ("a2"). hodnota) |
alebo môžete vynechať funkciu WorksheetFunction
1 | maxvalue = Application.Max (Rozsah ("a1"). Hodnota, rozsah ("a2"). Hodnota) |
Vynechanie funkcie WorksheetFunkce bohužiaľ odstráni Intellisense, ktorý zobrazuje syntax (pozri obrázok vyššie). Má však jednu veľkú potenciálnu výhodu: Spracovanie chýb.
Ak používate aplikáciu a vaša funkcia generuje chybu, vráti chybovú hodnotu. Ak použijete metódu WorksheetFunction, VBA vyvolá chybu za behu. S chybou VBA sa môžete samozrejme vysporiadať, ale zvyčajne je lepšie sa tejto chybe v prvom rade vyhnúť.
Pozrime sa na príklad, aby sme videli rozdiel:
Vlookup WorksheetFunkcia spracovania chýb
Pokúsime sa predviesť Vlookup, ktorý nepovedie k zápasu. Funkcia Vlookup teda vráti chybu.
Najprv použijeme metódu WorksheetFunction. Všimnite si, ako VBA vyvoláva chybu:
Ďalej vynecháme funkciu WorksheetFunction. Všimnite si, ako
Ďalej vynecháme funkciu WorksheetFunction. Všimnite si, ako sa nevyvoláva žiadna chyba, a namiesto toho funkcia „hodnota“ obsahuje chybovú hodnotu z programu Vlookup.
Zoznam funkcií pracovného hárka VBA
Nasleduje zoznam väčšiny bežných funkcií pracovného listu VBA.
Funkcia | Popis |
---|---|
Logické | |
A | Kontroluje, či sú splnené všetky podmienky. PRAVDA LOŽ |
AK | Ak je podmienka splnená, urobte niečo, ak nie, urobte niečo iné. |
IFERROR | Ak je výsledkom chyba, urobte niečo iné. |
ALEBO | Kontroluje, či sú splnené nejaké podmienky. PRAVDA LOŽ |
Vyhľadávanie a referencie | |
VYBERTE SI | Vyberie hodnotu zo zoznamu na základe čísla pozície. |
HLOOKUP | Vyhľadajte hodnotu v prvom riadku a vráťte hodnotu. |
INDEX | Vráti hodnotu na základe čísel stĺpcov a riadkov. |
VYHĽADAŤ | Vyhľadáva hodnoty horizontálne alebo vertikálne. |
ZÁPAS | Vyhľadá hodnotu v zozname a vráti jej pozíciu. |
TRANSPOZÍCIA | Obracia orientáciu radu buniek. |
VLOOKUP | Vyhľadajte hodnotu v prvom stĺpci a vráťte hodnotu. |
Dátum Čas | |
DÁTUM | Vráti dátum z roku, mesiaca a dňa. |
DATEVALUE | Skonvertuje dátum uložený ako text na platný dátum |
DEŇ | Vráti deň ako číslo (1-31). |
DNÍ 360 | Vráti dni medzi 2 dátumami v 360 -dňovom roku. |
EDÁT | Vráti dátum s odstupom n mesiacov od počiatočného dátumu. |
EOMONTH | Vráti posledný deň v mesiaci, dátum je n mesiacov. |
HODINA | Vráti hodinu ako číslo (0-23). |
MINUTA | Vráti minútu ako číslo (0-59). |
MESIAC | Vráti mesiac ako číslo (1-12). |
SIEŤ | Počet pracovných dní medzi 2 dátumami. |
NETWORKDAYS.INTL | Pracovné dni medzi 2 dátumami, víkendy na mieru. |
TERAZ | Vráti aktuálny dátum a čas. |
DRUHÝ | Vráti druhé ako číslo (0-59) |
ČAS | Vráti čas z hodiny, minúty a sekundy. |
ČASOVÁ HODNOTA | Skonvertuje čas uložený ako text na platný čas. |
WEEKDAY | Vráti deň v týždni ako číslo (1-7). |
WEEKNUM | Vráti číslo týždňa v roku (1-52). |
WORKDAY | Dátum n pracovných dní od dátumu. |
ROK | Vráti rok. |
ROK FRAC | Vráti zlomok roka medzi 2 dátumy. |
Strojárstvo | |
KONVERT | Previesť číslo z jednej jednotky na druhú. |
Finančné | |
FV | Vypočíta budúcu hodnotu. |
PV | Vypočíta súčasnú hodnotu. |
NPER | Vypočíta celkový počet platobných období. |
PMT | Vypočíta sumu platby. |
SADZBA | Vypočíta úrokovú sadzbu. |
NPV | Vypočíta čistú súčasnú hodnotu. |
IRR | Vnútorná miera návratnosti pre skupinu periodických CF. |
XIRR | Vnútorná miera návratnosti pre súbor neperiodických CF. |
CENA | Vypočíta cenu dlhopisu. |
INTRÁT | Úroková sadzba plne investovaného cenného papiera. |
Informácie | |
ISERR | Otestujte, či je hodnota bunky chybou, ignoruje #N/A. PRAVDA LOŽ |
ISERROR | Otestujte, či je hodnota bunky chybou. PRAVDA LOŽ |
ISEVEN | Otestujte, či je hodnota bunky rovnomerná. PRAVDA LOŽ |
ISLOGICKÉ | Otestujte, či je bunka logická (TRUE alebo FALSE). PRAVDA LOŽ |
ISNA | Otestujte, či je hodnota bunky #N/A. PRAVDA LOŽ |
ISNONTEXT | Otestujte, či bunka nie je text (prázdne bunky nie sú text). PRAVDA LOŽ |
ISNUMBER | Otestujte, či je bunka číslo. PRAVDA LOŽ |
ISODD | Otestujte, či je hodnota bunky nepárna. PRAVDA LOŽ |
ISTEXT | Otestujte, či je bunka text. PRAVDA LOŽ |
TYP | Vráti typ hodnoty v bunke. |
Matematika | |
ABS | Vypočíta absolútnu hodnotu čísla. |
AGREGÁT | Definujte a vykonajte výpočty pre databázu alebo zoznam. |
STROP | Zaokrúhli číslo nahor na najbližší určený násobok. |
COS | Vráti kosínus uhla. |
STUPŇA | Prevádza radiány na stupne. |
DSUM | Sčíta databázové záznamy, ktoré spĺňajú určité kritériá. |
EŠTE | Zaokrúhli na najbližšie párne celé číslo. |
EXP | Vypočíta exponenciálnu hodnotu pre dané číslo. |
FAKT | Vráti faktoriál. |
PODLAHA | Zaokrúhli číslo nadol na najbližší určený násobok. |
GCD | Vráti najväčšieho spoločného deliteľa. |
INT | Zaokrúhli číslo nadol na najbližšie celé číslo. |
LCM | Vráti najmenší spoločný násobok. |
LN | Vráti prirodzený logaritmus čísla. |
LOG | Vráti logaritmus čísla na zadanú základňu. |
LOG10 | Vráti základný logaritmus čísla 10. |
OKOLO | Zaokrúhli číslo na určený násobok. |
ZVLÁŠTNY | Zaokrúhli na najbližšie nepárne celé číslo. |
PI | Hodnota PI. |
MOC | Vypočíta číslo zvýšené na mocninu. |
PRODUKT | Vynásobí pole čísel. |
KVOTIENT | Vráti celočíselný výsledok delenia. |
RADIÁNI | Skonvertuje uhol na radiány. |
RANDBETWEEN | Vypočíta náhodné číslo medzi dvoma číslami. |
OKRÚHLY | Zaokrúhli číslo na zadaný počet číslic. |
OKOLO | Zaokrúhli číslo nadol (smerom k nule). |
ROUNDUP | Zaokrúhli číslo nahor (od nuly). |
HRIECH | Vráti sínus uhla. |
SUBTOTAL | Vráti súhrnnú štatistiku pre sériu údajov. |
SÚČET | Sčíta čísla. |
SUMIF | Sčíta čísla, ktoré spĺňajú kritériá. |
SUMIFY | Sčíta čísla, ktoré spĺňajú viacero kritérií. |
SUMPRODUCT | Vynásobí polia čísel a sčíta výsledné pole. |
TAN | Vráti tangens uhla. |
Štatistiky | |
PRIEMERNE | Priemerné čísla. |
AVERAGEIF | Priemeruje čísla, ktoré spĺňajú kritériá. |
AVERAGEIFS | Priemeruje čísla, ktoré spĺňajú viacero kritérií. |
CORREL | Vypočíta koreláciu dvoch sérií. |
COUNT | Počíta bunky, ktoré obsahujú číslo. |
COUNTA | Spočítajte bunky, ktoré nie sú prázdne. |
COUNTBLANK | Počíta bunky, ktoré sú prázdne. |
COUNTIF | Počíta bunky, ktoré spĺňajú kritériá. |
COUNTIFS | Počíta bunky, ktoré spĺňajú viacero kritérií. |
PROGNÓZA | Predpovedajte budúce hodnoty y z lineárnej trendovej čiary. |
FREKVENCIA | Počíta hodnoty, ktoré spadajú do určených rozsahov. |
RAST | Vypočíta hodnoty Y na základe exponenciálneho rastu. |
INTERCEPT | Vypočíta zachytenie Y pre najlepšie vyhovujúcu čiaru. |
VEĽKÝ | Vráti kth najväčšiu hodnotu. |
LINEST | Vráti štatistiku trendovej čiary. |
MAX | Vráti najväčšie číslo. |
MEDIÁN | Vráti stredné číslo. |
MIN | Vráti najmenšie číslo. |
REŽIM | Vráti najbežnejšie číslo. |
PERCENTILNÝ | Vráti kth percentil. |
PERCENTILE.INC | Vráti kth percentil. Kde k je vrátane. |
PERCENTILE.EXC | Vráti kth percentil. Kde k je exkluzívne. |
ŠTVRŤ | Vráti zadanú kvartilovú hodnotu. |
QUARTILE.INC | Vráti zadanú kvartilovú hodnotu. Vrátane. |
QUARTILE.EXC | Vráti zadanú kvartilovú hodnotu. Exkluzívne. |
RANK | Poradie čísla v sérii. |
RANK.AVG | Poradie čísla v sérii. Priemery. |
RANK.EQ | Poradie čísla v sérii. Najlepšie poradie. |
SLOPE | Vypočíta sklon z lineárnej regresie. |
MALÉ | Vráti kth najmenšiu hodnotu. |
STDEV | Vypočíta štandardnú odchýlku. |
STDEV.P | Vypočíta SD celej populácie. |
STDEV.S | Vypočíta SD vzorky. |
STDEVP | Vypočíta SD celej populácie |
TREND | Vypočíta hodnoty Y na základe trendovej čiary. |
Text | |
ČISTIŤ | Odstráni všetky netlačiteľné znaky. |
DOLLAR | Skonvertuje číslo na text vo formáte meny. |
NÁJSŤ | Lokalizuje pozíciu textu v bunke. Rozlišuje sa medzi veľkými a malými písmenami. |
VĽAVO | Skráti text o niekoľko znakov zľava. |
LEN | Počíta počet znakov v texte. |
MID | Extrahuje text zo stredu bunky. |
SPRÁVNE | Skonvertuje text na správny prípad. |
VYMENIŤ | Nahrádza text na základe jeho polohy. |
REPT | Text sa opakuje niekoľkokrát. |
SPRÁVNY | Skráti text na niekoľko znakov sprava. |
VYHĽADÁVANIE | Nájde polohu textu v bunke. Nerozlišuje malé a veľké písmená. |
NÁHRADA | Nájde a nahradí text. Rozlišujú sa malé a veľké písmená. |
TEXT | Skonvertuje hodnotu na text s konkrétnym číselným formátom. |
Orezať | Odstráni z textu všetky medzery. |