Upotreba funkcija radnog lista u makroima - primjeri koda VBA

Postoji mnogo načina korištenja funkcija u VBA -i. VBA dolazi s mnogo ugrađenih funkcija. Možete čak i stvoriti vlastite funkcije (UDF -ove). Međutim, pomoću programa Application.WorksheetFunction možete koristiti i mnoge Excel -ove funkcije u VBA -i.

Kako koristiti funkcije radnog lista u VBA

Za pristup Excel funkciji u VBA dodajte Application.WorksheetFunction ispred funkcije koju želite pozvati. U donjem primjeru nazvat ćemo Excelovu Max funkciju:

12 Zatamnite maksimalnu vrijednost sve dokmaxvalue = Application.WorksheetFunction.Max (Raspon ("a1"). Vrijednost, raspon ("a2"). Vrijednost)

Sintaksa funkcija je ista, no argumente funkcije ćete unijeti isto kao i bilo koju drugu VBA funkciju.

Primijetite da se sintaksa funkcije Max pojavljuje pri upisivanju (slično kao kod VBA funkcija):

Metoda rada radnog lista

WorksheetFunction je metoda Aplikacijskog objekta. Omogućuje vam pristup mnogim (ne svim) standardnim funkcijama radnog lista programa Excel. Općenito, nećete dobiti pristup nijednoj funkciji radnog lista koja ima odgovarajuću verziju VBA.

U nastavku možete vidjeti popis mnogih najčešćih funkcija radnog lista.

Application.WunksheetFunction vs Application

Zapravo postoje dva načina pristupa tim funkcijama:

Application.WorksheetFunction (kao što je gore prikazano):

1 maxvalue = Application.WorksheetFunction.Max (Raspon ("a1"). Vrijednost, raspon ("a2"). Vrijednost)

ili možete izostaviti funkciju radnog lista

1 maxvalue = Application.Max (Raspon ("a1"). Vrijednost, raspon ("a2"). Vrijednost)

Nažalost, izostavljanje funkcije WorksheetFunction uklonit će Intellisense koji prikazuje sintaksu (vidi gornju sliku). Međutim, ima jednu veliku potencijalnu prednost: Rukovanje pogreškama.

Ako koristite aplikaciju, a vaša funkcija generira pogrešku, vratit će vrijednost pogreške. Ako koristite metodu WorksheetFunction, VBA će prikazati pogrešku tijekom izvođenja. Naravno, možete riješiti VBA pogrešku, ali obično je bolje izbjeći pogrešku.

Pogledajmo primjer kako bismo vidjeli razliku:

Upravljanje pogreškama u funkciji Vlookup radnog lista

Pokušat ćemo izvesti Vlookup koji neće rezultirati podudaranjem. Tako će funkcija Vlookup vratiti pogrešku.

Prvo ćemo koristiti metodu WorksheetFunction. Obratite pažnju na to kako VBA prikazuje pogrešku:

Zatim izostavljamo funkciju radnog lista. Uočite kako je

Zatim ćemo izostaviti funkciju radnog lista. Uočite kako se ne pojavljuje pogreška i umjesto toga funkcija 'vrijednost' sadrži vrijednost pogreške iz Vlookupa.

Popis funkcija VBA radnog lista

Dolje ćete pronaći popis većine uobičajenih funkcija VBA radnog lista.

FunkcijaOpis
Logično
IProvjerava jesu li ispunjeni svi uvjeti. TOČNO NETOČNO
AKOAko je uvjet ispunjen, učinite nešto, ako ne, učinite nešto drugo.
POGREŠAKAko je rezultat pogreška, učinite nešto drugo.
ILIProvjerava jesu li ispunjeni neki uvjeti. TOČNO NETOČNO
Traženje i upućivanje
ODABERITEBira vrijednost s popisa na temelju broja pozicije.
HLOOKUPPotražite vrijednost u prvom retku i vratite vrijednost.
INDEKSVraća vrijednost na temelju brojeva stupaca i redaka.
POGLEDAJTraži vrijednosti vodoravno ili okomito.
UTAKMICATraži vrijednost na popisu i vraća njezin položaj.
TRANSPOZAOkreće orijentaciju niza stanica.
VLOOKUPPotražite vrijednost u prvom stupcu i vratite vrijednost.
Datum vrijeme
DATUMVraća datum iz godine, mjeseca i dana.
DATEVALUEPretvara datum pohranjen kao tekst u valjani datum
DANVraća dan kao broj (1-31).
360 DANAVraća dane između 2 datuma u 360 -dnevnoj godini.
IZMENIVraća datum udaljen n mjeseci od datuma početka.
EOMONTHVraća zadnji dan u mjesecu, udaljeno n mjeseci.
SATVraća sat kao broj (0-23).
MINUTAVraća minutu kao broj (0-59).
MJESECVraća mjesec kao broj (1-12).
MREŽNI DANIBroj radnih dana između 2 datuma.
NETWORKDAYS.INTLRadni dani između 2 datuma, prilagođeni vikendi.
SADAVraća trenutni datum i vrijeme.
DRUGIVraća drugi kao broj (0-59)
VRIJEMEVraća vrijeme od sata, minute i sekunde.
VRIJEMEPretvara vrijeme pohranjeno kao tekst u valjano vrijeme.
TJEDANVraća dan u tjednu kao broj (1-7).
TJEDANVraća broj tjedna u godini (1-52).
RADNI DANDatum n radnih dana od datuma.
GODINAVraća godinu.
GODIŠNJAKVraća dio godine između 2 datuma.
Inženjering
PRETVORITIPretvorite broj iz jedne jedinice u drugu.
Financijski
FVIzračunava buduću vrijednost.
PVIzračunava sadašnju vrijednost.
NPERIzračunava ukupan broj razdoblja plaćanja.
PMTIzračunava iznos plaćanja.
STOPAIzračunava kamatnu stopu.
NPVIzračunava neto sadašnju vrijednost.
IRRInterna stopa povrata za skup periodičnih CF -ova.
XIRRInterna stopa povrata za skup neperiodičnih CF-ova.
CIJENAIzračunava cijenu obveznice.
INTRATEKamatna stopa potpuno uloženog vrijednosnog papira.
Informacija
ISERRTestirajte je li vrijednost ćelije pogreška, zanemaruje #N/A. TOČNO NETOČNO
GREŠKATestirajte je li vrijednost ćelije pogreška. TOČNO NETOČNO
NEZAVISNOTestirajte je li vrijednost ćelije parna. TOČNO NETOČNO
ISLOŠKITestirajte je li ćelija logična (TRUE ili FALSE). TOČNO NETOČNO
ISNATestirajte je li vrijednost ćelije #N/A. TOČNO NETOČNO
ISNONTEXTTestirajte ako ćelija nije tekst (prazne ćelije nisu tekst). TOČNO NETOČNO
BROJTestirajte je li ćelija broj. TOČNO NETOČNO
ISODDTestirajte je li vrijednost ćelije neparna. TOČNO NETOČNO
ISTEXTTestirajte je li ćelija tekst. TOČNO NETOČNO
TIPVraća vrstu vrijednosti u ćeliju.
Matematika
ABSIzračunava apsolutnu vrijednost broja.
AGREGATDefinirajte i izvedite izračune za bazu podataka ili popis.
STROPZaokružuje broj prema najbližem navedenom višekratniku.
COSVraća kosinus kuta.
STEPENIPretvara radijane u stupnjeve.
DSUMZapisi baze podataka o sumama koji zadovoljavaju određene kriterije.
ČAKZaokružuje na najbliži parni cijeli broj.
EXPIzračunava eksponencijalnu vrijednost za dati broj.
ČINJENICAVraća faktorijel.
KATZaokružuje broj prema dolje na najbliži navedeni višekratnik.
GCDVraća najveći zajednički djelitelj.
INTZaokružuje broj na najbliži cijeli broj.
LCMVraća najmanji zajednički višekratnik.
LNVraća prirodni logaritam broja.
LOGVraća logaritam broja na određenu bazu.
LOG10Vraća logaritam baze-10 broja.
MROUNDZaokružuje broj na određeni višekratnik.
NEPARANZaokružuje na najbliži neparan cijeli broj.
PIVrijednost PI.
VLASTIzračunava broj podignut na stepen.
PROIZVODMnoži niz brojeva.
QUOTIENTVraća cijeli rezultat dijeljenja.
RADIJANCIPretvara kut u radijane.
RANDBETWEENIzračunava slučajni broj između dva broja.
KRUGZaokružuje broj na određeni broj znamenki.
ROUNDDOWNZaokružuje broj prema dolje (prema nuli).
OKUPITE SEZaokružuje broj prema gore (dalje od nule).
GRIJEHVraća sinus kuta.
SUBTOTALVraća zbirnu statistiku za niz podataka.
IZNOSZbraja brojeve.
SUMIFZbrojevi koji zadovoljavaju kriterije.
ZBIRUJEZbrojevi koji zadovoljavaju više kriterija.
PODUZIMAKMnoži nizove brojeva i zbraja rezultirajući niz.
TANVraća tangentu kuta.
Statistika
PROSJEČNOProsječni brojevi.
PROSJEČNOProsječni brojevi koji zadovoljavaju kriterije.
PROSJEČNOProsječni brojevi koji zadovoljavaju više kriterija.
CORRELIzračunava korelaciju dviju serija.
RAČUNATIBroji ćelije koje sadrže broj.
COUNTAPrebrojte ćelije koje nisu prazne.
COUNTBLANKBroji prazne ćelije.
COUNTIFBroji ćelije koje zadovoljavaju kriterije.
GROFOVIBroji ćelije koje zadovoljavaju više kriterija.
PROGNOZAPredvidite buduće y-vrijednosti iz linearne linije trenda.
FREKVENCIJABroji vrijednosti koje su unutar navedenih raspona.
RASTIzračunava vrijednosti Y na temelju eksponencijalnog rasta.
PRESREČIIzračunava presjek Y za liniju koja najbolje pristaje.
VELIKIVraća kth najveću vrijednost.
LINESTVraća statistiku o liniji trenda.
MAKSVraća najveći broj.
MEDIJSKIVraća medijanski broj.
MINVraća najmanji broj.
NAČIN RADAVraća najčešći broj.
POSTOTAKVraća k -ti percentil.
PERCENTILNI.INCVraća k -ti percentil. Gdje je k inkluzivno.
PERCENTILNI.EXCVraća k -ti percentil. Gdje je k isključivo.
KVARTILNIVraća navedenu vrijednost kvartila.
QUARTILE.INCVraća navedenu vrijednost kvartila. Uključujući.
QUARTILE.EXCVraća navedenu vrijednost kvartila. Ekskluzivan.
RANGPoredak broja u nizu.
RANK.AVGPoredak broja u nizu. Prosjeci.
RANG.EQPoredak broja u nizu. Vrhunski rang.
NAGIBIzračunava nagib iz linearne regresije.
MALIVraća k -tu najmanju vrijednost.
STDEVIzračunava standardnu ​​devijaciju.
STDEV.PIzračunava SD čitave populacije.
STDEV.SIzračunava SD uzorka.
STDEVPIzračunava SD čitave populacije
TRENDIzračunava vrijednosti Y na temelju linije trenda.
Tekst
ČISTUklanja sve znakove koji se ne mogu ispisati.
DOLARPretvara broj u tekst u obliku valute.
PRONAĆILocira položaj teksta unutar ćelije.Osjetljivo na velika i mala slova.
LIJEVOSkraćuje tekst nekoliko znakova s ​​lijeve strane.
LENBroji broj znakova u tekstu.
SREDNJAIzdvaja tekst iz sredine ćelije.
ISPRAVANPretvara tekst u velika i mala slova.
ZAMIJENITIZamjenjuje tekst na temelju njegove lokacije.
REPTPonavlja tekst nekoliko puta.
PRAVOSkraćuje tekst nekoliko znakova s ​​desne strane.
TRAŽILocira položaj teksta unutar ćelije. Ne razlikuje velika i mala slova.
ZAMJENAPronalazi i zamjenjuje tekst. Osjetljivo na velika i mala slova.
TEKSTPretvara vrijednost u tekst s određenim formatom broja.
TRIMUklanja sve dodatne razmake iz teksta.
wave wave wave wave wave