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.
Funkce | Popis |
---|---|
Logický | |
A | Zkontroluje, zda jsou splněny všechny podmínky. PRAVDA/NEPRAVDA |
LI | Pokud je podmínka splněna, udělejte něco, pokud ne, udělejte něco jiného. |
IFERROR | Pokud je výsledkem chyba, udělejte něco jiného. |
NEBO | Zkontroluje, zda jsou splněny nějaké podmínky. PRAVDA/NEPRAVDA |
Vyhledávání a reference | |
VYBRAT | Vybírá hodnotu ze seznamu na základě čísla pozice. |
HLOOKUP | Vyhledejte hodnotu v prvním řádku a vraťte hodnotu. |
INDEX | Vrátí hodnotu na základě čísel sloupců a řádků. |
VZHLÉDNOUT | Vyhledá hodnoty vodorovně nebo svisle. |
ZÁPAS | Vyhledá hodnotu v seznamu a vrátí její pozici. |
PŘEMÍSTIT | Obrací orientaci řady buněk. |
VLOOKUP | Vyhledejte hodnotu v prvním sloupci a vraťte hodnotu. |
Čas schůzky | |
DATUM | Vrátí datum z roku, měsíce a dne. |
DATUM HODNOTY | Převede datum uložené jako text na platné datum |
DEN | Vrací den jako číslo (1-31). |
DNÍ 360 | Vrátí dny mezi 2 daty v 360denním roce. |
UPRAVIT | Vrátí datum, n měsíců od data zahájení. |
EOMONTH | Vrátí poslední den měsíce, n měsíců pryč. |
HODINA | Vrátí hodinu jako číslo (0-23). |
MINUTA | Vrátí minutu jako číslo (0-59). |
MĚSÍC | Vrátí měsíc jako číslo (1-12). |
SÍTĚ | Počet pracovních dnů mezi 2 daty. |
NETWORKDAYS.INTL | Pracovní dny mezi 2 termíny, vlastní víkendy. |
NYNÍ | Vrátí aktuální datum a čas. |
DRUHÝ | Vrátí druhé jako číslo (0-59) |
ČAS | Vrátí čas z hodiny, minuty a sekundy. |
ČASOVÁ HODNOTA | Převede čas uložený jako text na platný čas. |
VŠEDNÍ DEN | Vrací den v týdnu jako číslo (1-7). |
WEEKNUM | Vrátí číslo týdne za rok (1-52). |
PRACOVNÍ DEN | Datum n pracovních dnů od data. |
ROK | Vrací rok. |
ROČNÍK | Vrátí zlomek roku mezi 2 daty. |
Inženýrství | |
KONVERTOVAT | Převod čísla z jedné jednotky na druhou. |
Finanční | |
F V | Vypočítá budoucí hodnotu. |
PV | Vypočítá současnou hodnotu. |
NPER | Vypočítá celkový počet platebních období. |
PMT | Vypočítá částku platby. |
HODNOTIT | Vypočítá úrokovou sazbu. |
NPV | Vypočítá čistou současnou hodnotu. |
IRR | Vnitřní míra návratnosti pro sadu periodických CF. |
XIRR | Interní míra návratnosti pro sadu neperiodických CF. |
CENA | Vypočítá cenu dluhopisu. |
INTRATUJTE | Úroková sazba plně investovaného cenného papíru. |
Informace | |
ISERR | Otestujte, zda je hodnota buňky chybou, ignoruje #N/A. PRAVDA/NEPRAVDA |
ISERROR | Otestujte, zda je hodnota buňky chybou. PRAVDA/NEPRAVDA |
ISEVEN | Otestujte, zda je hodnota buňky sudá. PRAVDA/NEPRAVDA |
ISLOGICKÉ | Otestujte, zda je buňka logická (PRAVDA nebo NEPRAVDA). PRAVDA/NEPRAVDA |
ISNA | Otestujte, zda je hodnota buňky #N/A. PRAVDA/NEPRAVDA |
ISNONTEXT | Otestujte, zda buňka není text (prázdné buňky nejsou text). PRAVDA/NEPRAVDA |
ČÍSLO | Otestujte, zda je buňka číslo. PRAVDA/NEPRAVDA |
ISODD | Otestujte, zda je hodnota buňky lichá. PRAVDA/NEPRAVDA |
ISTEXT | Otestujte, zda je buňka text. PRAVDA/NEPRAVDA |
TYP | Vrátí typ hodnoty v buňce. |
Matematika | |
břišní svaly | Vypočítá absolutní hodnotu čísla. |
AGREGÁT | Definujte a provádějte výpočty pro databázi nebo seznam. |
STROP | Zaokrouhlí číslo nahoru na nejbližší určený násobek. |
COS | Vrátí kosinus úhlu. |
STUPNĚ | Převádí radiány na stupně. |
DSUM | Součty záznamů databáze, které splňují určitá kritéria. |
DOKONCE | Zaokrouhlí na nejbližší sudé číslo. |
EXP | Vypočítá exponenciální hodnotu pro dané číslo. |
SKUTEČNOST | Vrátí faktoriál. |
PODLAHA | Zaokrouhlí číslo dolů, na nejbližší určený násobek. |
GCD | Vrátí největšího společného dělitele. |
INT | Zaokrouhlí číslo dolů na nejbližší celé číslo. |
LCM | Vrátí nejmenší společný násobek. |
LN | Vrátí přirozený logaritmus čísla. |
LOG | Vrátí logaritmus čísla na zadanou základnu. |
LOG10 | Vrátí základní logaritmus čísla 10. |
MROUND | Zaokrouhlí číslo na zadaný násobek. |
ZVLÁŠTNÍ | Zaokrouhlí na nejbližší liché celé číslo. |
PI | Hodnota PI. |
NAPÁJENÍ | Vypočítá číslo zvýšené na mocninu. |
PRODUKT | Vynásobí pole čísel. |
KVOCIENT | Vrátí celočíselný výsledek dělení. |
RADIÁNI | Převede úhel na radiány. |
RANDBETWEEN | Vypočítá náhodné číslo mezi dvěma čísly. |
KOLO | Zaokrouhlí číslo na zadaný počet číslic. |
ZAOKROUHLIT DOLŮ | Zaokrouhlí číslo dolů (směrem k nule). |
ZÁTAH | Zaokrouhlí číslo nahoru (od nuly). |
HŘÍCH | Vrátí sinus úhlu. |
SUBTOTAL | Vrátí souhrnnou statistiku pro řadu dat. |
SOUČET | Sčítá čísla dohromady. |
SUMIF | Součty čísel, která splňují kritéria. |
SUMIFY | Sčítá čísla, která splňují více kritérií. |
SUMPRODUKT | Násobí pole čísel a sečte výsledné pole. |
OPÁLENÍ | Vrátí tangens úhlu. |
Statistiky | |
PRŮMĚRNÝ | Průměrná čísla. |
AVERAGEIF | Průměruje čísla, která splňují kritéria. |
AVERAGEIFS | Průměruje čísla, která splňují více kritérií. |
CORREL | Vypočítá korelaci dvou řad. |
POČET | Počítá buňky, které obsahují číslo. |
COUNTA | Počítejte buňky, které nejsou prázdné. |
COUNTBLANK | Počítá buňky, které jsou prázdné. |
COUNTIF | Počítá buňky, které splňují kritéria. |
COUNTIFS | Počítá buňky, které splňují více kritérií. |
PŘEDPOVĚĎ | Předpovídejte budoucí hodnoty y z lineární trendové linie. |
FREKVENCE | Počítá hodnoty, které spadají do zadaných rozsahů. |
RŮST | Vypočítá hodnoty Y na základě exponenciálního růstu. |
INTERCEPT | Vypočítá průsečík Y pro nejlépe padnoucí čáru. |
VELKÝ | Vrátí kth největší hodnotu. |
LINEST | Vrátí statistiku o trendové linii. |
MAX | Vrátí největší číslo. |
MEDIÁN | Vrátí střední číslo. |
MIN | Vrátí nejmenší číslo. |
REŽIM | Vrátí nejběžnější číslo. |
PERCENTILNÍ | Vrátí kth percentil. |
PERCENTILE.INC | Vrátí kth percentil. Kde k je inkluzivní. |
PERCENTILE.EXC | Vrátí kth percentil. Kde k je exkluzivní. |
ČTVRTLETNÝ | Vrátí zadanou kvartilní hodnotu. |
QUARTILE.INC | Vrátí zadanou kvartilní hodnotu. Včetně. |
QUARTILE.EXC | Vrátí zadanou kvartilní hodnotu. Výhradní. |
HODNOST | Pořadí čísla v sérii. |
RANK.AVG | Pořadí čísla v sérii. Průměry. |
RANK.EQ | Pořadí čísla v sérii. Top Rank. |
SKLON | Vypočítá sklon z lineární regrese. |
MALÝ | Vrátí kth nejmenší hodnotu. |
STDEV | Vypočítá směrodatnou odchylku. |
STDEV.P | Vypočítá SD celé populace. |
STDEV.S | Vypočítá SD vzorku. |
STDEVP | Vypočítá SD celé populace |
TREND | Vypočítá hodnoty Y na základě trendové linie. |
Text | |
ČISTÝ | Odstraní všechny netisknutelné znaky. |
DOLAR | Převede číslo na text ve formátu měny. |
NALÉZT | Vyhledá polohu textu v buňce. Citlivé na případ. |
VLEVO, ODJET | Zkracuje text o několik znaků zleva. |
LEN | Počí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. |
NAHRADIT | Nahrazuje text na základě jeho umístění. |
REPT | Opakuje text několikrát. |
ŽE JO | Zkrá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. |
TEXT | Převede hodnotu na text s konkrétním číselným formátem. |
OŘEZAT | Odstraní z textu všechny mezery. |