Bruk regnearkfunksjoner i en makro - VBA -kodeeksempler

Det er mange måter å bruke funksjoner på i VBA. VBA kommer lastet med mange innebygde funksjoner. Du kan til og med lage dine egne funksjoner (UDF). Du kan imidlertid også bruke mange av Excel -funksjonene i VBA ved å bruke Application.WorksheetFunction.

Hvordan bruke regnearkfunksjoner i VBA

For å få tilgang til en Excel -funksjon i VBA, legg til Application.WorksheetFunction foran funksjonen du vil ringe. I eksemplet nedenfor kaller vi Excel sin maksfunksjon:

12 Dim maksimal verdi så lengemaxvalue = Application.WorksheetFunction.Max (Range ("a1"). Value, Range ("a2"). Value)

Syntaksen til funksjonene er den samme, men du vil angi funksjonsargumentene akkurat som alle andre VBA -funksjoner.

Legg merke til at syntaksen til maksfunksjonen vises når du skriver (ligner på med VBA -funksjoner):

ArbeidsarkFunksjonsmetode

WorksheetFunction er en metode for applikasjonsobjekt. Den gir deg tilgang til mange (ikke alle) vanlige Excel -regnearkfunksjoner. Vanligvis får du ikke tilgang til noen regnearkfunksjoner som har en tilsvarende VBA -versjon.

Du kan se en liste over mange av de vanligste regnearkfunksjonene nedenfor.

Application.WorksheetFunction vs.Application

Det er faktisk to måter å få tilgang til disse funksjonene:

Application.WorksheetFunction (som vist ovenfor):

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

eller du kan utelate WorksheetFunction

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

Dessverre vil utelatelse av regnearkfunksjonen eliminere Intellisense som viser syntaksen (se bildet ovenfor). Det har imidlertid en stor potensiell fordel: Feilhåndtering.

Hvis du bruker Application, og funksjonen din genererer en feil, returnerer den feilverdien. Hvis du bruker metoden WorksheetFunction, vil VBA kaste en kjøretidsfeil. Selvfølgelig kan du håndtere VBA -feilen, men det er vanligvis bedre å unngå feilen i utgangspunktet.

La oss se på et eksempel for å se forskjellen:

Vlookup -regneark Funksjonsfeilhåndtering

Vi vil prøve å utføre en Vlookup som ikke vil resultere i en kamp. Så Vlookup -funksjonen returnerer en feil.

Først vil vi bruke metoden WorksheetFunction. Legg merke til hvordan VBA kaster en feil:

Deretter utelater vi regnearkfunksjonen. Legg merke til hvordan

Deretter vil vi utelate WorksheetFunction. Legg merke til hvordan ingen feil blir kastet, og i stedet inneholder "verdi" -funksjonen feilverdien fra Vlookup.

Funksjonsliste for VBA -regneark

Nedenfor finner du en liste over de fleste vanlige VBA WorksheetFunctions.

FunksjonBeskrivelse
Logisk
OGKontrollerer om alle betingelsene er oppfylt. SANN/FALSK
HVISHvis betingelsen er oppfylt, gjør noe, hvis ikke, gjør noe annet.
IFERRORHvis resultatet er en feil, gjør du noe annet.
ELLERSjekker om noen vilkår er oppfylt. SANN/FALSK
Oppslag og referanse
VELGEVelger en verdi fra en liste basert på posisjonsnummeret.
HLOOKUPSlå opp en verdi i første rad og returner en verdi.
INDEKSReturnerer en verdi basert på kolonne- og radnummer.
SE OPPSlår opp verdier enten horisontalt eller vertikalt.
KAMPSøker etter en verdi i en liste og returnerer posisjonen.
TRANSPOSEVender retningen til en rekke celler.
VLOOKUPSlå opp en verdi i den første kolonnen og returner en verdi.
Dato tid
DATOReturnerer en dato fra år, måned og dag.
DATEVALUEKonverterer en dato som er lagret som tekst til en gyldig dato
DAGReturnerer dagen som et tall (1-31).
DAGER 360Returnerer dager mellom 2 datoer i et 360 -dagers år.
EDATEReturnerer en dato, n måneder unna en startdato.
EOMONTHReturnerer siste dag i måneden, n måneder bort dato.
TIMEReturnerer timen som et tall (0-23).
MINUTTReturnerer minuttet som et tall (0-59).
MÅNEDReturnerer måneden som et tall (1-12).
NETTVERKSDAGERAntall arbeidsdager mellom 2 datoer.
NETWORKDAYS.INTLArbeidsdager mellom 2 datoer, tilpassede helger.
Returnerer gjeldende dato og klokkeslett.
SEKUNDReturnerer den andre som et tall (0-59)
TIDReturnerer tiden fra en time, minutt og sekund.
TIMEVALUEKonverterer en tid som er lagret som tekst til en gyldig tid.
UKEDAGReturnerer ukedagen som et tall (1-7).
UKENReturnerer uketallet i et år (1-52).
ARBEIDSDAGDatoen n virkedager fra en dato.
ÅRReturnerer året.
ÅRFRACReturnerer brøkdelen av et år mellom 2 datoer.
Engineering
KONVERTEREKonverter tall fra en enhet til en annen.
Finansiell
FVBeregner den fremtidige verdien.
PVBeregner nåverdien.
NPERBeregner det totale antallet betalingsperioder.
PMTBeregner betalingsbeløpet.
VURDEREBeregner renten.
NPVBeregner netto nåverdi.
IRRDen interne avkastningen for et sett med periodiske CF -er.
XIRRDen interne avkastningen for et sett med ikke-periodiske CF-er.
PRISBeregner prisen på en obligasjon.
INTRATERenten på et fullt investert verdipapir.
Informasjon
ISERRTest om celleverdien er en feil, ignorerer #N/A. SANN/FALSK
FEILTest om celleverdien er en feil. SANN/FALSK
ISEVENTest om celleverdien er jevn. SANN/FALSK
ISLOGISKTest om cellen er logisk (SANN eller FALSK). SANN/FALSK
ISNATest om celleverdien er #N/A. SANN/FALSK
ISNONTEXTTest om cellen ikke er tekst (tomme celler er ikke tekst). SANN/FALSK
ISNUMBERTest om cellen er et tall. SANN/FALSK
ISODDTest om celleverdien er merkelig. SANN/FALSK
ISTEXTTest om cellen er tekst. SANN/FALSK
TYPEReturnerer verdien i en celle.
Matte
ABSBeregner den absolutte verdien av et tall.
AGGREGATEDefiner og utfør beregninger for en database eller en liste.
TAKRunder et tall opp til nærmeste angitte multiplum.
COSReturnerer cosinus for en vinkel.
GRADERKonverterer radianer til grader.
DSUMSummer databaseposter som oppfyller visse kriterier.
TIL OG MEDRunder til nærmeste heltall.
EkspBeregner den eksponensielle verdien for et gitt tall.
FAKTUMReturnerer faktoren.
GULVAvrunder et tall ned til nærmeste angitte multiplum.
GCDReturnerer den største fellesdeleren.
INTAvrunder et tall ned til nærmeste heltall.
LCMReturnerer det minst felles multiplumet.
LNReturnerer den naturlige logaritmen til et tall.
LOGGReturnerer logaritmen til et tall til en spesifisert base.
LOG10Returnerer basis-10-logaritmen til et tall.
MROUNDAvrunder et tall til et spesifisert multiplum.
MERKELIGRunder til nærmeste oddetall.
PIVerdien av PI.
MAKTBeregner et tall som er hevet til en effekt.
PRODUKTMultipliserer en rekke tall.
KVOTIENTReturnerer hele tallresultatet av divisjon.
RADIANERKonverterer en vinkel til radianer.
RANDBETWEENBeregner et tilfeldig tall mellom to tall.
RUNDAvrunder et tall til et angitt antall sifre.
RUNDE NEDRunder et tall ned (mot null).
ROUNDUPRunder et tall opp (vekk fra null).
SYNDReturnerer sinus for en vinkel.
SUBTOTALTReturnerer en sammendragsstatistikk for en serie med data.
SUMLegger tall sammen.
SUMIFSummer tall som oppfyller et kriterium.
SUMIFERSummer tall som oppfyller flere kriterier.
SUMPRODUKTMultipliserer matriser med tall og summerer den resulterende matrisen.
TANReturnerer tangenten til en vinkel.
Statistikk
GJENNOMSNITTGjennomsnittstall.
GJENNOMSNITTGjennomsnittstall som oppfyller kriterier.
GJENNOMSNITTGjennomsnittstall som oppfyller flere kriterier.
CORRELBeregner korrelasjonen mellom to serier.
TELLETeller celler som inneholder et tall.
COUNTATell celler som ikke er tomme.
TELLBLANKTeller celler som er tomme.
TELLINGTeller celler som oppfyller et kriterium.
TELLINGERTeller celler som oppfyller flere kriterier.
PROGNOSEForutsi fremtidige y-verdier fra lineær trendlinje.
FREKVENSTeller verdier som faller innenfor angitte områder.
VEKSTBeregner Y -verdier basert på eksponentiell vekst.
AVSKJÆREBeregner Y-skjæringspunktet for en best egnet linje.
STORReturnerer den kth største verdien.
LINESTReturnerer statistikk om en trendlinje.
MAKSReturnerer det største antallet.
MEDIANReturnerer mediannummeret.
MINReturnerer det minste tallet.
MODUSReturnerer det vanligste tallet.
PERSENTILReturnerer kth -percentilen.
PERCENTILE.INCReturnerer kth -percentilen. Hvor k er inkluderende.
PERCENTILE.EXCReturnerer kth -percentilen. Hvor k er eksklusivt.
KVARTILReturnerer den angitte kvartilverdien.
QUARTILE.INCReturnerer den angitte kvartilverdien. Inklusive.
QUARTILE.EXCReturnerer den angitte kvartilverdien. Eksklusiv.
RANGRangering av et nummer i en serie.
RANK.AVGRangering av et nummer i en serie. Gjennomsnitt.
RANK.EQRangering av et nummer i en serie. Å lure.
SKRÅNINGENBeregner skråningen fra lineær regresjon.
LITENReturnerer kth minste verdi.
STDEVBeregner standardavviket.
STDEV.PBeregner SD for en hel populasjon.
STDEV.SBeregner SD for en prøve.
STDEVPBeregner SD for en hel populasjon
TRENDBeregner Y -verdier basert på en trendlinje.
Tekst
RENFjerner alle tegn som ikke kan skrives ut.
DOLLARKonverterer et tall til tekst i valutaformat.
FINNEFinner posisjonen til teksten i en celle. Saksfølsom.
VENSTREAvkorter tekst til et antall tegn fra venstre.
LENTeller antall tegn i teksten.
MIDTTrekker ut tekst fra midten av en celle.
ORDENTLIGKonverterer tekst til riktig bokstav.
ERSTATTEErstatter tekst basert på plasseringen.
REPTGjentar teksten flere ganger.
IKKE SANTAvkorter tekst til et antall tegn fra høyre.
SØKFinner posisjonen til teksten i en celle. Ikke store og små bokstaver.
ERSTATNINGFinner og erstatter tekst. Skilt mellom store og små bokstaver.
TEKSTKonverterer en verdi til tekst med et bestemt tallformat.
LISTVERKFjerner alle ekstra mellomrom fra tekst.
wave wave wave wave wave