Brug regnearksfunktioner i en makro - VBA -kodeeksempler

Der er mange måder at bruge funktioner på i VBA. VBA leveres fyldt med mange indbyggede funktioner. Du kan endda oprette dine egne funktioner (UDF'er). Du kan dog også udnytte mange af Excels funktioner i VBA ved at bruge Application.WorksheetFunction.

Sådan bruges regnearksfunktioner i VBA

For at få adgang til en Excel -funktion i VBA skal du tilføje Application.WorksheetFunction foran den funktion, du vil ringe til. I eksemplet herunder kalder vi Excel's Max Function:

12 Dim maksimal værdi så langmaxvalue = Application.WorksheetFunction.Max (Range ("a1"). Værdi, Range ("a2"). Værdi)

Syntaksen for funktionerne er den samme, men du vil indtaste funktionsargumenterne ligesom alle andre VBA -funktioner.

Bemærk, at syntaks for Max -funktionen vises, når du skriver (ligner med VBA -funktioner):

Arbejdsark Funktionsmetode

WorksheetFunction er en metode til applikationsobjekt. Det giver dig adgang til mange (ikke alle) standard Excel -regnearksfunktioner. Generelt får du ikke adgang til regnearksfunktioner, der har en tilsvarende VBA -version.

Du kan se en liste over mange af de mest almindelige regnearkfunktioner nedenfor.

Application.WorksheetFunction vs.Application

Der er faktisk to måder at få adgang til disse funktioner:

Application.WorksheetFunction (som set ovenfor):

1 maxvalue = Application.WorksheetFunction.Max (Range ("a1"). Værdi, Range ("a2"). Værdi)

eller du kan udelade regnearksfunktionen

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

Desværre vil udeladelse af regnearksfunktionen fjerne Intellisense, der viser syntaksen (se billedet ovenfor). Det har dog en stor potentiel fordel: Fejlhåndtering.

Hvis du bruger Application, og din funktion genererer en fejl, returnerer den fejlværdien. Hvis du bruger metoden WorksheetFunction, udsender VBA en fejl i løbetiden. Selvfølgelig kan du håndtere VBA -fejlen, men det er normalt bedre at undgå fejlen i første omgang.

Lad os se på et eksempel for at se forskellen:

Vlookup -regneark Funktionsfejlhåndtering

Vi vil forsøge at udføre en Vlookup, der ikke vil resultere i en kamp. Så Vlookup -funktionen returnerer en fejl.

Først vil vi bruge metoden WorksheetFunction. Bemærk, hvordan VBA kaster en fejl:

Dernæst udelader vi regnearksfunktionen. Læg mærke til hvordan

Dernæst vil vi udelade regnearksfunktionen. Læg mærke til, hvordan der ikke kastes en fejl, og i stedet indeholder funktionen ‘værdi’ fejlværdien fra Vlookup.

Liste over funktioner i VBA -regneark

Nedenfor finder du en liste over de fleste af de almindelige VBA -arbejdsarkfunktioner.

FungereBeskrivelse
Logisk
OGKontrollerer, om alle betingelser er opfyldt. SANDT FALSK
HVISHvis betingelsen er opfyldt, gør noget, hvis ikke, gør noget andet.
IFERRORHvis resultatet er en fejl, skal du gøre noget andet.
ELLERKontrollerer, om nogen betingelser er opfyldt. SANDT FALSK
Opslag og reference
VÆLGEVælger en værdi fra en liste baseret på dens positionsnummer.
HLOOKUPSlå en værdi op i den første række, og returner en værdi.
INDEKSReturnerer en værdi baseret på kolonne- og rækkenumre.
KIG OPSlår værdier op enten vandret eller lodret.
MATCHSøger efter en værdi på en liste og returnerer sin position.
OVERFLADEVender retningen af ​​en række celler.
VLOOKUPSlå en værdi op i den første kolonne, og returner en værdi.
Dato tid
DATOReturnerer en dato fra år, måned og dag.
DATOVÆRDIKonverterer en dato, der er gemt som tekst, til en gyldig dato
DAGReturnerer dagen som et tal (1-31).
DAGE 360Returnerer dage mellem 2 datoer i et 360 -dages år.
EDATEReturnerer en dato, n måneder væk fra en startdato.
EOMONTHReturnerer den sidste dag i måneden, n måneder væk dato.
TIMEReturnerer timen som et tal (0-23).
MINUTReturnerer minuttet som et tal (0-59).
MÅNEDReturnerer måneden som et tal (1-12).
NETVÆRKSDAGEAntal arbejdsdage mellem 2 datoer.
NETWORKDAYS.INTLArbejdsdage mellem 2 datoer, tilpassede weekender.
NUReturnerer den aktuelle dato og klokkeslæt.
SEKUNDReturnerer den anden som et tal (0-59)
TIDReturnerer tiden fra en time, minut og sekund.
TIMEVALUEKonverterer en tid, der er gemt som tekst, til en gyldig tid.
UGEReturnerer ugedagen som et tal (1-7).
UGEReturnerer ugetallet i et år (1-52).
ARBEJDSDAGDatoen n arbejdsdage fra en dato.
ÅRReturnerer året.
ÅRFRACReturnerer brøkdelen af ​​et år mellem 2 datoer.
ingeniørarbejde
KONVERTEREKonverter tal fra en enhed til en anden.
Finansiel
FVBeregner den fremtidige værdi.
PVBeregner nutidsværdien.
NPERBeregner det samlede antal betalingsperioder.
PMTBeregner betalingsbeløbet.
SATSBeregner renten.
NPVBeregner den nuværende nutidsværdi.
IRRDen interne afkast for et sæt periodiske CF'er.
XIRRDen interne afkast for et sæt ikke-periodiske CF'er.
PRISBeregner prisen på en obligation.
INTRATERenten på et fuldt investeret værdipapir.
Information
ISERRTest om celleværdien er en fejl, ignorerer #N/A. SANDT FALSK
FEJLTest om celleværdien er en fejl. SANDT FALSK
ISEVENTest om celleværdien er jævn. SANDT FALSK
ISLOGISKTest om cellen er logisk (SAND eller FALSK). SANDT FALSK
ISNATest om celleværdien er #N/A. SANDT FALSK
ISNONTEXTTest om cellen ikke er tekst (tomme celler er ikke tekst). SANDT FALSK
ISNUMBERTest om cellen er et tal. SANDT FALSK
ISODDTest om celleværdien er ulige. SANDT FALSK
ISTEXTTest om cellen er tekst. SANDT FALSK
TYPEReturnerer værditypen i en celle.
Matematik
ABSBeregner den absolutte værdi af et tal.
SAMLETDefiner og udfør beregninger for en database eller en liste.
LOFTRunder et tal op til det nærmeste angivne multiplum.
COSReturnerer cosinus for en vinkel.
GRADERKonverterer radianer til grader.
DSUMSummer database poster, der opfylder visse kriterier.
OGSÅ SELVOMRunder til nærmeste lige heltal.
EXPBeregner den eksponentielle værdi for et givet tal.
FAKTUMReturnerer factorial.
ETAGERunder et tal ned til det nærmeste angivne multiplum.
GCDReturnerer den største fælles divisor.
INTRunder et tal ned til det nærmeste heltal.
LCMReturnerer det mindst fælles multiplum.
LNReturnerer den naturlige logaritme for et tal.
LOGReturnerer logaritmen for et tal til en bestemt base.
LOG10Returnerer basis-10-logaritmen for et tal.
MROUNDAfrunder et tal til et bestemt multiplum.
ULIGERunder til det nærmeste ulige heltal.
PIVærdien af ​​PI.
STRØMBeregner et tal hævet til en effekt.
PRODUKTMultiplicerer en række tal.
KVITIENTReturnerer heltalsresultatet af division.
RADIANERKonverterer en vinkel til radianer.
RANDBETWEENBeregner et tilfældigt tal mellem to tal.
RUNDAfrunder et tal til et bestemt antal cifre.
RUND NEDRunder et tal ned (mod nul).
RUNDE OPRunder et tal op (væk fra nul).
SYNDReturnerer sinus for en vinkel.
SUBTOTALReturnerer en opsummerende statistik for en række data.
SUMTilføjer tal sammen.
SUMIFSummer tal, der opfylder et kriterium.
SUMIFSSummer tal, der opfylder flere kriterier.
SUMPRODUKTMultiplicerer matriser med tal og summerer det resulterende array.
TANReturnerer tangenten af ​​en vinkel.
Statistik
GENNEMSNITGennemsnit tal.
GENNEMSNITGennemsnit tal, der opfylder et kriterium.
GENNEMSNITGennemsnit tal, der opfylder flere kriterier.
CORRELBeregner korrelationen mellem to serier.
TÆLLETæller celler, der indeholder et tal.
COUNTATæl celler, der ikke er tomme.
COUNTBLANKTæller celler, der er tomme.
TÆLLETæller celler, der opfylder et kriterium.
TÆLLERTæller celler, der opfylder flere kriterier.
VEJRUDSIGTForudsig fremtidige y-værdier fra lineær trendlinje.
FREKVENSTæller værdier, der falder inden for angivne områder.
VÆKSTBeregner Y -værdier baseret på eksponentiel vækst.
INTERCEPTBeregner Y-skæringen for en linje, der passer bedst.
STORReturnerer den kth største værdi.
LINESTReturnerer statistik om en trendlinje.
MAXReturnerer det største antal.
MEDIANReturnerer mediannummeret.
MINReturnerer det mindste tal.
MODEReturnerer det mest almindelige tal.
PERCENTILReturnerer kth percentilen.
PERCENTILE.INCReturnerer kth percentilen. Hvor k er inklusiv.
PERCENTILE.EXCReturnerer kth percentilen. Hvor k er eksklusivt.
KVARTILReturnerer den angivne kvartilværdi.
QUARTILE.INCReturnerer den angivne kvartilværdi. Inklusive.
QUARTILE.EXCReturnerer den angivne kvartilværdi. Eksklusiv.
RANGRang af et nummer i en serie.
RANK.AVGRang af et nummer i en serie. Gennemsnit.
RANK.EQRang af et nummer i en serie. Toprangering.
HÆLDNINGBeregner hældningen fra lineær regression.
LILLEReturnerer den kth mindste værdi.
STDEVBeregner standardafvigelsen.
STDEV.PBeregner SD for en hel befolkning.
STDEV.SBeregner SD for en prøve.
STDEVPBeregner SD for en hel befolkning
TRENDBeregner Y -værdier baseret på en trendlinje.
Tekst
RENFjerner alle tegn, der ikke kan udskrives.
DOLLARKonverterer et tal til tekst i valutaformat.
FINDLokaliserer tekstens placering i en celle.Case-sensitive.
VENSTREAfkorter tekst et antal tegn fra venstre.
LENTæller antal tegn i teksten.
MIDTUdtrækker tekst fra midten af ​​en celle.
PASSENDEKonverterer teksten til den rette bogstav.
ERSTATTEErstatter tekst baseret på dens placering.
REPTGentager tekst flere gange.
RETAfkortes tekst et antal tegn fra højre.
SØGFinder placering af tekst i en celle. Ikke store og små bogstaver.
ERSTATNINGFinder og erstatter tekst. Sagsfølsom.
TEKSTKonverterer en værdi til tekst med et bestemt talformat.
TRIMMEFjerner alle ekstra mellemrum fra tekst.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave