Použijte funkce listu v makru - příklady kódu VBA

Existuje mnoho způsobů, jak používat funkce ve VBA. VBA je nabitý mnoha vestavěnými funkcemi. Můžete dokonce vytvářet vlastní funkce (UDF). Ve VBA však můžete také využít mnoho funkcí Excelu pomocí Application.WorksheetFunction.

Jak používat funkce listu ve VBA

Pro přístup k funkci Excelu ve VBA přidejte Application.WorksheetFunction před funkci, kterou chcete volat. V níže uvedeném příkladu budeme volat maximální funkci Excelu:

12 Dim maxvalue tak dlouhomaxvalue = Application.WorksheetFunction.Max (Rozsah ("a1"). Hodnota, rozsah ("a2"). Hodnota)

Syntaxe funkcí je stejná, ale zadáte argumenty funkce stejně jako jakoukoli jinou funkci VBA.

Všimněte si, že při psaní se zobrazí syntaxe funkce Max (podobně jako u funkcí VBA):

Metoda pracovního listu

WorksheetFunction je metoda objektu aplikace. Umožňuje vám přístup k mnoha (ne všem) standardním funkcím listu aplikace Excel. Obecně nezískáte přístup k žádným funkcím listu, které mají odpovídající verzi VBA.

Níže naleznete seznam mnoha nejběžnějších funkcí pracovního listu.

Application.WorksheetFunction vs. aplikace

Ve skutečnosti existují dva způsoby přístupu k těmto funkcím:

Application.WorksheetFunction (jak je vidět výše):

1 maxvalue = Application.WorksheetFunction.Max (Rozsah ("a1"). Hodnota, rozsah ("a2"). Hodnota)

nebo můžete vynechat funkci WorksheetFunction

1 maxvalue = Application.Max (Rozsah ("a1"). Hodnota, rozsah ("a2"). Hodnota)

Vynechání funkce WorksheetFunction bohužel odstraní Intellisense, který zobrazuje syntaxi (viz obrázek výše). Má to však jednu velkou potenciální výhodu: Vypořádání se s chybou.

Pokud používáte aplikaci a vaše funkce generuje chybu, vrátí chybovou hodnotu. Pokud použijete metodu WorksheetFunction, VBA vyvolá chybu za běhu. S chybou VBA se můžete samozřejmě vypořádat, ale obvykle je lepší se této chybě nejprve vyhnout.

Podívejme se na příklad, abychom viděli rozdíl:

Vlookup WorksheetFunkce zpracování chyb

Pokusíme se provést Vlookup, který nepovede k zápasu. Funkce Vlookup tedy vrátí chybu.

Nejprve použijeme metodu WorksheetFunction. Všimněte si, jak VBA vyvolá chybu:

Dále vynecháme funkci WorksheetFunction. Všimněte si, jak

Dále vynecháme funkci WorksheetFunction. Všimněte si, že není vyvolána žádná chyba, a místo toho funkce „hodnota“ obsahuje hodnotu chyby z Vlookup.

Seznam funkcí pracovního listu VBA

Níže naleznete seznam většiny běžných funkcí listu VBA.

FunkcePopis
Logický
AZkontroluje, zda jsou splněny všechny podmínky. PRAVDA/NEPRAVDA
LIPokud je podmínka splněna, udělejte něco, pokud ne, udělejte něco jiného.
IFERRORPokud je výsledkem chyba, udělejte něco jiného.
NEBOZkontroluje, zda jsou splněny nějaké podmínky. PRAVDA/NEPRAVDA
Vyhledávání a reference
VYBRATVybírá hodnotu ze seznamu na základě čísla pozice.
HLOOKUPVyhledejte hodnotu v prvním řádku a vraťte hodnotu.
INDEXVrátí hodnotu na základě čísel sloupců a řádků.
VZHLÉDNOUTVyhledá hodnoty vodorovně nebo svisle.
ZÁPASVyhledá hodnotu v seznamu a vrátí její pozici.
PŘEMÍSTITObrací orientaci řady buněk.
VLOOKUPVyhledejte hodnotu v prvním sloupci a vraťte hodnotu.
Čas schůzky
DATUMVrátí datum z roku, měsíce a dne.
DATUM HODNOTYPřevede datum uložené jako text na platné datum
DENVrací den jako číslo (1-31).
DNÍ 360Vrátí dny mezi 2 daty v 360denním roce.
UPRAVITVrátí datum, n měsíců od data zahájení.
EOMONTHVrátí poslední den měsíce, n měsíců pryč.
HODINAVrátí hodinu jako číslo (0-23).
MINUTAVrátí minutu jako číslo (0-59).
MĚSÍCVrátí měsíc jako číslo (1-12).
SÍTĚPočet pracovních dnů mezi 2 daty.
NETWORKDAYS.INTLPracovní dny mezi 2 termíny, vlastní víkendy.
NYNÍVrátí aktuální datum a čas.
DRUHÝVrátí druhé jako číslo (0-59)
ČASVrátí čas z hodiny, minuty a sekundy.
ČASOVÁ HODNOTAPřevede čas uložený jako text na platný čas.
VŠEDNÍ DENVrací den v týdnu jako číslo (1-7).
WEEKNUMVrátí číslo týdne za rok (1-52).
PRACOVNÍ DENDatum n pracovních dnů od data.
ROKVrací rok.
ROČNÍKVrátí zlomek roku mezi 2 daty.
Inženýrství
KONVERTOVATPřevod čísla z jedné jednotky na druhou.
Finanční
F VVypočítá budoucí hodnotu.
PVVypočítá současnou hodnotu.
NPERVypočítá celkový počet platebních období.
PMTVypočítá částku platby.
HODNOTITVypočítá úrokovou sazbu.
NPVVypočítá čistou současnou hodnotu.
IRRVnitřní míra návratnosti pro sadu periodických CF.
XIRRInterní míra návratnosti pro sadu neperiodických CF.
CENAVypočítá cenu dluhopisu.
INTRATUJTEÚroková sazba plně investovaného cenného papíru.
Informace
ISERROtestujte, zda je hodnota buňky chybou, ignoruje #N/A. PRAVDA/NEPRAVDA
ISERROROtestujte, zda je hodnota buňky chybou. PRAVDA/NEPRAVDA
ISEVENOtestujte, zda je hodnota buňky sudá. PRAVDA/NEPRAVDA
ISLOGICKÉOtestujte, zda je buňka logická (PRAVDA nebo NEPRAVDA). PRAVDA/NEPRAVDA
ISNAOtestujte, zda je hodnota buňky #N/A. PRAVDA/NEPRAVDA
ISNONTEXTOtestujte, zda buňka není text (prázdné buňky nejsou text). PRAVDA/NEPRAVDA
ČÍSLOOtestujte, zda je buňka číslo. PRAVDA/NEPRAVDA
ISODDOtestujte, zda je hodnota buňky lichá. PRAVDA/NEPRAVDA
ISTEXTOtestujte, zda je buňka text. PRAVDA/NEPRAVDA
TYPVrátí typ hodnoty v buňce.
Matematika
břišní svalyVypočítá absolutní hodnotu čísla.
AGREGÁTDefinujte a provádějte výpočty pro databázi nebo seznam.
STROPZaokrouhlí číslo nahoru na nejbližší určený násobek.
COSVrátí kosinus úhlu.
STUPNĚPřevádí radiány na stupně.
DSUMSoučty záznamů databáze, které splňují určitá kritéria.
DOKONCEZaokrouhlí na nejbližší sudé číslo.
EXPVypočítá exponenciální hodnotu pro dané číslo.
SKUTEČNOSTVrátí faktoriál.
PODLAHAZaokrouhlí číslo dolů, na nejbližší určený násobek.
GCDVrátí největšího společného dělitele.
INTZaokrouhlí číslo dolů na nejbližší celé číslo.
LCMVrátí nejmenší společný násobek.
LNVrátí přirozený logaritmus čísla.
LOGVrátí logaritmus čísla na zadanou základnu.
LOG10Vrátí základní logaritmus čísla 10.
MROUNDZaokrouhlí číslo na zadaný násobek.
ZVLÁŠTNÍZaokrouhlí na nejbližší liché celé číslo.
PIHodnota PI.
NAPÁJENÍVypočítá číslo zvýšené na mocninu.
PRODUKTVynásobí pole čísel.
KVOCIENTVrátí celočíselný výsledek dělení.
RADIÁNIPřevede úhel na radiány.
RANDBETWEENVypočítá náhodné číslo mezi dvěma čísly.
KOLOZaokrouhlí číslo na zadaný počet číslic.
ZAOKROUHLIT DOLŮZaokrouhlí číslo dolů (směrem k nule).
ZÁTAHZaokrouhlí číslo nahoru (od nuly).
HŘÍCHVrátí sinus úhlu.
SUBTOTALVrátí souhrnnou statistiku pro řadu dat.
SOUČETSčítá čísla dohromady.
SUMIFSoučty čísel, která splňují kritéria.
SUMIFYSčítá čísla, která splňují více kritérií.
SUMPRODUKTNásobí pole čísel a sečte výsledné pole.
OPÁLENÍVrátí tangens úhlu.
Statistiky
PRŮMĚRNÝPrůměrná čísla.
AVERAGEIFPrůměruje čísla, která splňují kritéria.
AVERAGEIFSPrůměruje čísla, která splňují více kritérií.
CORRELVypočítá korelaci dvou řad.
POČETPočítá buňky, které obsahují číslo.
COUNTAPočítejte buňky, které nejsou prázdné.
COUNTBLANKPočítá buňky, které jsou prázdné.
COUNTIFPočítá buňky, které splňují kritéria.
COUNTIFSPočítá buňky, které splňují více kritérií.
PŘEDPOVĚĎPředpovídejte budoucí hodnoty y z lineární trendové linie.
FREKVENCEPočítá hodnoty, které spadají do zadaných rozsahů.
RŮSTVypočítá hodnoty Y na základě exponenciálního růstu.
INTERCEPTVypočítá průsečík Y pro nejlépe padnoucí čáru.
VELKÝVrátí kth největší hodnotu.
LINESTVrátí statistiku o trendové linii.
MAXVrátí největší číslo.
MEDIÁNVrátí střední číslo.
MINVrátí nejmenší číslo.
REŽIMVrátí nejběžnější číslo.
PERCENTILNÍVrátí kth percentil.
PERCENTILE.INCVrátí kth percentil. Kde k je inkluzivní.
PERCENTILE.EXCVrátí kth percentil. Kde k je exkluzivní.
ČTVRTLETNÝVrátí zadanou kvartilní hodnotu.
QUARTILE.INCVrátí zadanou kvartilní hodnotu. Včetně.
QUARTILE.EXCVrátí zadanou kvartilní hodnotu. Výhradní.
HODNOSTPořadí čísla v sérii.
RANK.AVGPořadí čísla v sérii. Průměry.
RANK.EQPořadí čísla v sérii. Top Rank.
SKLONVypočítá sklon z lineární regrese.
MALÝVrátí kth nejmenší hodnotu.
STDEVVypočítá směrodatnou odchylku.
STDEV.PVypočítá SD celé populace.
STDEV.SVypočítá SD vzorku.
STDEVPVypočítá SD celé populace
TRENDVypočítá hodnoty Y na základě trendové linie.
Text
ČISTÝOdstraní všechny netisknutelné znaky.
DOLARPřevede číslo na text ve formátu měny.
NALÉZTVyhledá polohu textu v buňce. Citlivé na případ.
VLEVO, ODJETZkracuje text o několik znaků zleva.
LENPočítá počet znaků v textu.
STŘEDNÍExtrahuje text ze středu buňky.
SPRÁVNĚPřevede text na správný případ.
NAHRADITNahrazuje text na základě jeho umístění.
REPTOpakuje text několikrát.
ŽE JOZkrátí text o několik znaků zprava.
VYHLEDÁVÁNÍVyhledá polohu textu v buňce. Nerozlišuje velká a malá písmena.
NÁHRADNÍVyhledá a nahradí text. Citlivý na velká písmena.
TEXTPřevede hodnotu na text s konkrétním číselným formátem.
OŘEZATOdstraní z textu všechny mezery.
wave wave wave wave wave