Utilizați funcțiile de foaie de lucru într-un Macro - Exemple de cod VBA

Există multe modalități de a utiliza funcții în VBA. VBA vine încărcat cu multe funcții încorporate. Puteți chiar să vă creați propriile funcții (UDF). Cu toate acestea, puteți utiliza, de asemenea, multe dintre funcțiile Excel în VBA utilizând Application.WorksheetFunction.

Cum se utilizează funcțiile foii de lucru în VBA

Pentru a accesa o funcție Excel în VBA adăugați Application.WorksheetFunction în fața funcției pe care doriți să o apelați. În exemplul de mai jos, vom apela funcția Max a Excel:

12 Reduceți valoarea maximă cât timpmaxvalue = Application.WorksheetFunction.Max (Range ("a1"). Value, Range ("a2"). Value)

Sintaxa funcțiilor este aceeași, cu toate acestea veți introduce argumentele funcției la fel ca orice altă funcție VBA.

Observați că sintaxa funcției Max apare atunci când tastați (similar cu funcțiile VBA):

Foaie de lucru Metoda funcției

WorksheetFunction este o metodă a obiectului Application. Vă permite accesul la multe (nu la toate) funcțiile standard ale foii de lucru Excel. În general, nu veți avea acces la nicio funcție a foii de lucru care are o versiune VBA corespunzătoare.

Puteți vedea mai jos o listă cu multe dintre cele mai comune funcții ale foii de lucru.

Application.WorksheetFunction vs. Application

Există de fapt două modalități de a accesa aceste funcții:

Application.WorksheetFunction (așa cum se vede mai sus):

1 maxvalue = Application.WorksheetFunction.Max (Range ("a1"). Value, Range ("a2"). Value)

sau puteți omite Foaia de lucru

1 maxvalue = Application.Max (Range ("a1"). Value, Range ("a2"). Value)

Din păcate, omiterea Funcției Foaie de lucru va elimina Intellisense care afișează sintaxa (vezi imaginea de mai sus). Cu toate acestea, are un mare avantaj potențial: Eroare de manipulare.

Dacă utilizați aplicația și funcția dvs. generează o eroare, aceasta va returna valoarea erorii. Dacă utilizați metoda WorksheetFunction, VBA va arunca o eroare în timpul rulării. Desigur, puteți gestiona eroarea VBA, dar de obicei este mai bine să evitați eroarea în primul rând.

Să vedem un exemplu pentru a vedea diferența:

Foaia de lucru Vlookup Funcția de gestionare a erorilor

Vom încerca să realizăm un Vlookup care nu va avea ca rezultat un meci. Deci funcția Vlookup va returna o eroare.

În primul rând, vom folosi metoda WorksheetFunction. Observați cum VBA generează o eroare:

Apoi omitem Foaia de lucru. Observați cum

În continuare vom omite Funcția Foaie de lucru. Observați cum nu este aruncată nicio eroare și în schimb funcția „valoare” conține valoarea erorii din Vlookup.

Lista de funcții a foii de lucru VBA

Mai jos veți găsi o listă cu cele mai multe dintre funcțiile comune ale foii de lucru VBA.

FuncţieDescriere
Logic
ȘIVerifică dacă sunt îndeplinite toate condițiile. ADEVARAT FALS
DACĂDacă condiția este îndeplinită, faceți ceva, dacă nu, faceți altceva.
IFERRORDacă rezultatul este o eroare, atunci faceți altceva.
SAUVerifică dacă sunt îndeplinite condițiile. ADEVARAT FALS
Căutare și referințe
ALEGEAlege o valoare dintr-o listă în funcție de numărul poziției sale.
CĂUTARECăutați o valoare în primul rând și returnați o valoare.
INDEXReturnează o valoare bazată pe numerele de coloană și rând.
PRIVEȘTE ÎN SUSCăutați valori orizontal sau vertical.
MECICăutați o valoare într-o listă și îi returnează poziția.
TRANSPUNEÎntoarce orientarea unei game de celule.
CĂUTARECăutați o valoare în prima coloană și returnați o valoare.
Data și ora
DATAReturnează o dată din an, lună și zi.
DATEVALUEConvertește o dată stocată ca text într-o dată validă
ZIReturnează ziua ca număr (1-31).
ZILE360Returnează zile între 2 date într-un an de 360 ​​de zile.
EDATAȚIReturnează o dată, la n luni distanță de la o dată de început.
EOMONTHReturnează ultima zi a lunii, data de n luni.
ORAReturnează ora ca număr (0-23).
MINUTReturnează minutul ca număr (0-59).
LUNĂReturnează luna ca număr (1-12).
ZILE DE REȚEANumărul de zile lucrătoare între 2 date.
NETWORKDAYS.INTLZile lucrătoare între 2 date, weekenduri personalizate.
ACUMReturnează data și ora curente.
AL DOILEAReturnează al doilea ca număr (0-59)
TIMPReturnează timpul de la o oră, minut și secundă.
TIMEVALUEConvertește o oră stocată ca text într-o oră validă.
SĂPTĂMÂNĂReturnează ziua săptămânii ca număr (1-7).
SĂPTĂMÂNĂReturnează numărul săptămânii într-un an (1-52).
ZI DE LUCRUData n zile lucrătoare de la o dată.
ANReturnează anul.
YEARFRACReturnează fracțiunea de an între 2 date.
Inginerie
CONVERTITConvertiți numărul de la o unitate la alta.
Financiar
FVCalculează valoarea viitoare.
PVCalculează valoarea actuală.
NPERCalculează numărul total de perioade de plată.
PMTCalculează suma plății.
RATĂCalculează rata dobânzii.
VANCalculează valoarea actuală netă.
IRRRata internă de rentabilitate pentru un set de CF periodice.
XIRRRata internă de rentabilitate pentru un set de CF-uri non-periodice.
PREȚCalculează prețul unei obligațiuni.
INTRAREARata dobânzii unui titlu investit integral.
informație
ISERRTestați dacă valoarea celulei este o eroare, ignoră # N / A. ADEVARAT FALS
ISERRORTestați dacă valoarea celulei este o eroare. ADEVARAT FALS
ESTE CHIARTestați dacă valoarea celulei este uniformă. ADEVARAT FALS
ISLOGICTestați dacă celula este logică (ADEVĂRAT sau FALS). ADEVARAT FALS
ISNATestați dacă valoarea celulei este # N / A. ADEVARAT FALS
ISNONTEXTTestați dacă celula nu este text (celulele goale nu sunt text). ADEVARAT FALS
ISNUMBERTestați dacă celula este un număr. ADEVARAT FALS
ISODDTestați dacă valoarea celulei este impar. ADEVARAT FALS
ISTEXTTestați dacă celula este text. ADEVARAT FALS
TIPReturnează tipul de valoare dintr-o celulă.
Matematica
ABSCalculează valoarea absolută a unui număr.
AGREGATDefiniți și efectuați calcule pentru o bază de date sau o listă.
TAVANRotunjește un număr până la cel mai apropiat multiplu specificat.
COSReturnează cosinusul unui unghi.
GRADEConvertește radianii în grade.
DSUMSumează înregistrările bazei de date care îndeplinesc anumite criterii.
CHIARRotunjește la cel mai apropiat număr întreg.
EXPCalculează valoarea exponențială pentru un număr dat.
FAPTReturnează factorialul.
PODEARotunjește un număr în jos, până la cel mai apropiat multiplu specificat.
GCDReturnează cel mai mare divizor comun.
INTRotunjește un număr până la cel mai apropiat număr întreg.
LCMReturnează cel mai mic multiplu comun.
LNReturnează logaritmul natural al unui număr.
BUTURUGAReturnează logaritmul unui număr la o bază specificată.
LOG10Returnează logaritmul de bază 10 al unui număr.
MROUNDRotunjește un număr la un multiplu specificat.
CIUDATRotunjește la cel mai apropiat număr impar.
PIValoarea PI.
PUTERECalculează un număr ridicat la o putere.
PRODUSMultiplică o serie de numere.
COEFICIENTReturnează rezultatul întreg al diviziunii.
RADIANIConvertește un unghi în radiani.
RANDBETWEENCalculează un număr aleatoriu între două numere.
RUNDĂRotunjește un număr la un număr specificat de cifre.
ROTUNDATRotunjește un număr în jos (spre zero).
A ROTUNJIRotunjește un număr în sus (departe de zero).
PĂCATReturnează sinusul unui unghi.
SUBTOTALReturnează o statistică sumară pentru o serie de date.
SUMĂAdună numere împreună.
SUMIFSuma numerele care îndeplinesc un criteriu.
SUMESuma numerele care îndeplinesc mai multe criterii.
SUMPRODUCTMultiplică matrici de numere și însumează matricea rezultată.
TANReturnează tangenta unui unghi.
Statistici
IN MEDIENumere medii.
MEDIEIFMedii de numere care îndeplinesc un criteriu.
MEDIIMedii de numere care îndeplinesc mai multe criterii.
CORRELCalculează corelația a două serii.
NUMARANumără celulele care conțin un număr.
COUNTANumărați celulele care sunt necompletate.
COUNTBLANKNumără celulele necompletate.
COUNTIFNumără celulele care îndeplinesc un criteriu.
COUNTIFINumără celulele care îndeplinesc mai multe criterii.
PREVIZIUNEPreziceți valorile y viitoare din linia de tendință liniară.
FRECVENȚĂNumără valorile care se încadrează în intervalele specificate.
CREŞTERECalculează valorile Y pe baza creșterii exponențiale.
INTERCEPTACalculează interceptarea Y pentru o linie care se potrivește cel mai bine.
MAREReturnează cea de-a cincea cea mai mare valoare.
CEL MAI LINReturnează statistici despre un trendline.
MAXReturnează cel mai mare număr.
MEDIANReturnează numărul mediu.
MINReturnează cel mai mic număr.
MODReturnează cel mai frecvent număr.
PERCENTILReturnează percentila a K.
PERCENTILE.INCReturnează percentila a K. Unde k este inclusiv.
PERCENTILE.EXCReturnează percentila a K. Unde k este exclusiv.
QUARTILEReturnează valoarea quartilei specificată.
QUARTILE.INCReturnează valoarea quartilei specificată. Inclusiv.
QUARTILE.EXCReturnează valoarea quartilei specificată. Exclusiv.
RANGRangul unui număr dintr-o serie.
RANK.AVGRangul unui număr dintr-o serie. Medii.
RANK.EQRangul unui număr dintr-o serie. A pacali.
PANTĂCalculează panta din regresia liniară.
MICReturnează cea de-a cincea cea mai mică valoare.
STDEVCalculează abaterea standard.
STDEV.PCalculează SD pentru o întreagă populație.
STDEV.SCalculează SD-ul unui eșantion.
STDEVPCalculează SD pentru o întreagă populație
TENDINŢĂCalculează valorile Y pe baza unei linii de trend.
Text
CURATElimină toate caracterele neprimabile.
DOLARConvertește un număr în text în format valutar.
GĂSILocalizează poziția textului într-o celulă. Sensibil la majuscule.
STÂNGATrunchiază textul unui număr de caractere din stânga.
LENNumără numărul de caractere din text.
MIDExtrage text din mijlocul unei celule.
ADEVĂRATConvertește textul în majuscule.
A INLOCUIÎnlocuiește textul pe baza locației sale.
REPTRepetă textul de mai multe ori.
DREAPTATrunchiază un număr de caractere din dreapta.
CĂUTARELocalizează poziția textului într-o celulă. Nu este sensibil la majuscule.
SUBSTITUIGăsește și înlocuiește textul. Caz sensibil.
TEXTConvertește o valoare în text cu un anumit format de număr.
TUNDEElimină toate spațiile suplimentare din text.
wave wave wave wave wave