Použite funkcie pracovného hárka v makre - Príklady kódu VBA

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.

FunkciaPopis
Logické
AKontroluje, či sú splnené všetky podmienky. PRAVDA LOŽ
AKAk je podmienka splnená, urobte niečo, ak nie, urobte niečo iné.
IFERRORAk je výsledkom chyba, urobte niečo iné.
ALEBOKontroluje, či sú splnené nejaké podmienky. PRAVDA LOŽ
Vyhľadávanie a referencie
VYBERTE SIVyberie hodnotu zo zoznamu na základe čísla pozície.
HLOOKUPVyhľadajte hodnotu v prvom riadku a vráťte hodnotu.
INDEXVráti hodnotu na základe čísel stĺpcov a riadkov.
VYHĽADAŤVyhľadáva hodnoty horizontálne alebo vertikálne.
ZÁPASVyhľadá hodnotu v zozname a vráti jej pozíciu.
TRANSPOZÍCIAObracia orientáciu radu buniek.
VLOOKUPVyhľadajte hodnotu v prvom stĺpci a vráťte hodnotu.
Dátum Čas
DÁTUMVráti dátum z roku, mesiaca a dňa.
DATEVALUESkonvertuje dátum uložený ako text na platný dátum
DEŇVráti deň ako číslo (1-31).
DNÍ 360Vráti dni medzi 2 dátumami v 360 -dňovom roku.
EDÁTVráti dátum s odstupom n mesiacov od počiatočného dátumu.
EOMONTHVráti posledný deň v mesiaci, dátum je n mesiacov.
HODINAVráti hodinu ako číslo (0-23).
MINUTAVráti minútu ako číslo (0-59).
MESIACVráti mesiac ako číslo (1-12).
SIEŤPočet pracovných dní medzi 2 dátumami.
NETWORKDAYS.INTLPracovné dni medzi 2 dátumami, víkendy na mieru.
TERAZVráti aktuálny dátum a čas.
DRUHÝVráti druhé ako číslo (0-59)
ČASVráti čas z hodiny, minúty a sekundy.
ČASOVÁ HODNOTASkonvertuje čas uložený ako text na platný čas.
WEEKDAYVráti deň v týždni ako číslo (1-7).
WEEKNUMVráti číslo týždňa v roku (1-52).
WORKDAYDátum n pracovných dní od dátumu.
ROKVráti rok.
ROK FRACVráti zlomok roka medzi 2 dátumy.
Strojárstvo
KONVERTPreviesť číslo z jednej jednotky na druhú.
Finančné
FVVypočíta budúcu hodnotu.
PVVypočíta súčasnú hodnotu.
NPERVypočíta celkový počet platobných období.
PMTVypočíta sumu platby.
SADZBAVypočíta úrokovú sadzbu.
NPVVypočíta čistú súčasnú hodnotu.
IRRVnútorná miera návratnosti pre skupinu periodických CF.
XIRRVnútorná miera návratnosti pre súbor neperiodických CF.
CENAVypočíta cenu dlhopisu.
INTRÁTÚroková sadzba plne investovaného cenného papiera.
Informácie
ISERROtestujte, či je hodnota bunky chybou, ignoruje #N/A. PRAVDA LOŽ
ISERROROtestujte, či je hodnota bunky chybou. PRAVDA LOŽ
ISEVENOtestujte, či je hodnota bunky rovnomerná. PRAVDA LOŽ
ISLOGICKÉOtestujte, či je bunka logická (TRUE alebo FALSE). PRAVDA LOŽ
ISNAOtestujte, či je hodnota bunky #N/A. PRAVDA LOŽ
ISNONTEXTOtestujte, či bunka nie je text (prázdne bunky nie sú text). PRAVDA LOŽ
ISNUMBEROtestujte, či je bunka číslo. PRAVDA LOŽ
ISODDOtestujte, či je hodnota bunky nepárna. PRAVDA LOŽ
ISTEXTOtestujte, či je bunka text. PRAVDA LOŽ
TYPVráti typ hodnoty v bunke.
Matematika
ABSVypočíta absolútnu hodnotu čísla.
AGREGÁTDefinujte a vykonajte výpočty pre databázu alebo zoznam.
STROPZaokrúhli číslo nahor na najbližší určený násobok.
COSVráti kosínus uhla.
STUPŇAPrevádza radiány na stupne.
DSUMSčíta databázové záznamy, ktoré spĺňajú určité kritériá.
EŠTEZaokrúhli na najbližšie párne celé číslo.
EXPVypočíta exponenciálnu hodnotu pre dané číslo.
FAKTVráti faktoriál.
PODLAHAZaokrúhli číslo nadol na najbližší určený násobok.
GCDVráti najväčšieho spoločného deliteľa.
INTZaokrúhli číslo nadol na najbližšie celé číslo.
LCMVráti najmenší spoločný násobok.
LNVráti prirodzený logaritmus čísla.
LOGVráti logaritmus čísla na zadanú základňu.
LOG10Vráti základný logaritmus čísla 10.
OKOLOZaokrúhli číslo na určený násobok.
ZVLÁŠTNYZaokrúhli na najbližšie nepárne celé číslo.
PIHodnota PI.
MOCVypočíta číslo zvýšené na mocninu.
PRODUKTVynásobí pole čísel.
KVOTIENTVráti celočíselný výsledok delenia.
RADIÁNISkonvertuje uhol na radiány.
RANDBETWEENVypočíta náhodné číslo medzi dvoma číslami.
OKRÚHLYZaokrúhli číslo na zadaný počet číslic.
OKOLOZaokrúhli číslo nadol (smerom k nule).
ROUNDUPZaokrúhli číslo nahor (od nuly).
HRIECHVráti sínus uhla.
SUBTOTALVráti súhrnnú štatistiku pre sériu údajov.
SÚČETSčíta čísla.
SUMIFSčíta čísla, ktoré spĺňajú kritériá.
SUMIFYSčíta čísla, ktoré spĺňajú viacero kritérií.
SUMPRODUCTVynásobí polia čísel a sčíta výsledné pole.
TANVráti tangens uhla.
Štatistiky
PRIEMERNEPriemerné čísla.
AVERAGEIFPriemeruje čísla, ktoré spĺňajú kritériá.
AVERAGEIFSPriemeruje čísla, ktoré spĺňajú viacero kritérií.
CORRELVypočíta koreláciu dvoch sérií.
COUNTPočíta bunky, ktoré obsahujú číslo.
COUNTASpočítajte bunky, ktoré nie sú prázdne.
COUNTBLANKPočíta bunky, ktoré sú prázdne.
COUNTIFPočíta bunky, ktoré spĺňajú kritériá.
COUNTIFSPočíta bunky, ktoré spĺňajú viacero kritérií.
PROGNÓZAPredpovedajte budúce hodnoty y z lineárnej trendovej čiary.
FREKVENCIAPočíta hodnoty, ktoré spadajú do určených rozsahov.
RASTVypočíta hodnoty Y na základe exponenciálneho rastu.
INTERCEPTVypočíta zachytenie Y pre najlepšie vyhovujúcu čiaru.
VEĽKÝVráti kth najväčšiu hodnotu.
LINESTVráti štatistiku trendovej čiary.
MAXVráti najväčšie číslo.
MEDIÁNVráti stredné číslo.
MINVráti najmenšie číslo.
REŽIMVráti najbežnejšie číslo.
PERCENTILNÝVráti kth percentil.
PERCENTILE.INCVráti kth percentil. Kde k je vrátane.
PERCENTILE.EXCVráti kth percentil. Kde k je exkluzívne.
ŠTVRŤVráti zadanú kvartilovú hodnotu.
QUARTILE.INCVráti zadanú kvartilovú hodnotu. Vrátane.
QUARTILE.EXCVráti zadanú kvartilovú hodnotu. Exkluzívne.
RANKPoradie čísla v sérii.
RANK.AVGPoradie čísla v sérii. Priemery.
RANK.EQPoradie čísla v sérii. Najlepšie poradie.
SLOPEVypočíta sklon z lineárnej regresie.
MALÉVráti kth najmenšiu hodnotu.
STDEVVypočíta štandardnú odchýlku.
STDEV.PVypočíta SD celej populácie.
STDEV.SVypočíta SD vzorky.
STDEVPVypočíta SD celej populácie
TRENDVypočíta hodnoty Y na základe trendovej čiary.
Text
ČISTIŤOdstráni všetky netlačiteľné znaky.
DOLLARSkonvertuje čí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ĽAVOSkráti text o niekoľko znakov zľava.
LENPočíta počet znakov v texte.
MIDExtrahuje text zo stredu bunky.
SPRÁVNESkonvertuje text na správny prípad.
VYMENIŤNahrádza text na základe jeho polohy.
REPTText sa opakuje niekoľkokrát.
SPRÁVNYSkráti text na niekoľko znakov sprava.
VYHĽADÁVANIENájde polohu textu v bunke. Nerozlišuje malé a veľké písmená.
NÁHRADANájde a nahradí text. Rozlišujú sa malé a veľké písmená.
TEXTSkonvertuje hodnotu na text s konkrétnym číselným formátom.
OrezaťOdstráni z textu všetky medzery.
wave wave wave wave wave