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.
Funksjon | Beskrivelse |
---|---|
Logisk | |
OG | Kontrollerer om alle betingelsene er oppfylt. SANN/FALSK |
HVIS | Hvis betingelsen er oppfylt, gjør noe, hvis ikke, gjør noe annet. |
IFERROR | Hvis resultatet er en feil, gjør du noe annet. |
ELLER | Sjekker om noen vilkår er oppfylt. SANN/FALSK |
Oppslag og referanse | |
VELGE | Velger en verdi fra en liste basert på posisjonsnummeret. |
HLOOKUP | Slå opp en verdi i første rad og returner en verdi. |
INDEKS | Returnerer en verdi basert på kolonne- og radnummer. |
SE OPP | Slår opp verdier enten horisontalt eller vertikalt. |
KAMP | Søker etter en verdi i en liste og returnerer posisjonen. |
TRANSPOSE | Vender retningen til en rekke celler. |
VLOOKUP | Slå opp en verdi i den første kolonnen og returner en verdi. |
Dato tid | |
DATO | Returnerer en dato fra år, måned og dag. |
DATEVALUE | Konverterer en dato som er lagret som tekst til en gyldig dato |
DAG | Returnerer dagen som et tall (1-31). |
DAGER 360 | Returnerer dager mellom 2 datoer i et 360 -dagers år. |
EDATE | Returnerer en dato, n måneder unna en startdato. |
EOMONTH | Returnerer siste dag i måneden, n måneder bort dato. |
TIME | Returnerer timen som et tall (0-23). |
MINUTT | Returnerer minuttet som et tall (0-59). |
MÅNED | Returnerer måneden som et tall (1-12). |
NETTVERKSDAGER | Antall arbeidsdager mellom 2 datoer. |
NETWORKDAYS.INTL | Arbeidsdager mellom 2 datoer, tilpassede helger. |
NÅ | Returnerer gjeldende dato og klokkeslett. |
SEKUND | Returnerer den andre som et tall (0-59) |
TID | Returnerer tiden fra en time, minutt og sekund. |
TIMEVALUE | Konverterer en tid som er lagret som tekst til en gyldig tid. |
UKEDAG | Returnerer ukedagen som et tall (1-7). |
UKEN | Returnerer uketallet i et år (1-52). |
ARBEIDSDAG | Datoen n virkedager fra en dato. |
ÅR | Returnerer året. |
ÅRFRAC | Returnerer brøkdelen av et år mellom 2 datoer. |
Engineering | |
KONVERTERE | Konverter tall fra en enhet til en annen. |
Finansiell | |
FV | Beregner den fremtidige verdien. |
PV | Beregner nåverdien. |
NPER | Beregner det totale antallet betalingsperioder. |
PMT | Beregner betalingsbeløpet. |
VURDERE | Beregner renten. |
NPV | Beregner netto nåverdi. |
IRR | Den interne avkastningen for et sett med periodiske CF -er. |
XIRR | Den interne avkastningen for et sett med ikke-periodiske CF-er. |
PRIS | Beregner prisen på en obligasjon. |
INTRATE | Renten på et fullt investert verdipapir. |
Informasjon | |
ISERR | Test om celleverdien er en feil, ignorerer #N/A. SANN/FALSK |
FEIL | Test om celleverdien er en feil. SANN/FALSK |
ISEVEN | Test om celleverdien er jevn. SANN/FALSK |
ISLOGISK | Test om cellen er logisk (SANN eller FALSK). SANN/FALSK |
ISNA | Test om celleverdien er #N/A. SANN/FALSK |
ISNONTEXT | Test om cellen ikke er tekst (tomme celler er ikke tekst). SANN/FALSK |
ISNUMBER | Test om cellen er et tall. SANN/FALSK |
ISODD | Test om celleverdien er merkelig. SANN/FALSK |
ISTEXT | Test om cellen er tekst. SANN/FALSK |
TYPE | Returnerer verdien i en celle. |
Matte | |
ABS | Beregner den absolutte verdien av et tall. |
AGGREGATE | Definer og utfør beregninger for en database eller en liste. |
TAK | Runder et tall opp til nærmeste angitte multiplum. |
COS | Returnerer cosinus for en vinkel. |
GRADER | Konverterer radianer til grader. |
DSUM | Summer databaseposter som oppfyller visse kriterier. |
TIL OG MED | Runder til nærmeste heltall. |
Eksp | Beregner den eksponensielle verdien for et gitt tall. |
FAKTUM | Returnerer faktoren. |
GULV | Avrunder et tall ned til nærmeste angitte multiplum. |
GCD | Returnerer den største fellesdeleren. |
INT | Avrunder et tall ned til nærmeste heltall. |
LCM | Returnerer det minst felles multiplumet. |
LN | Returnerer den naturlige logaritmen til et tall. |
LOGG | Returnerer logaritmen til et tall til en spesifisert base. |
LOG10 | Returnerer basis-10-logaritmen til et tall. |
MROUND | Avrunder et tall til et spesifisert multiplum. |
MERKELIG | Runder til nærmeste oddetall. |
PI | Verdien av PI. |
MAKT | Beregner et tall som er hevet til en effekt. |
PRODUKT | Multipliserer en rekke tall. |
KVOTIENT | Returnerer hele tallresultatet av divisjon. |
RADIANER | Konverterer en vinkel til radianer. |
RANDBETWEEN | Beregner et tilfeldig tall mellom to tall. |
RUND | Avrunder et tall til et angitt antall sifre. |
RUNDE NED | Runder et tall ned (mot null). |
ROUNDUP | Runder et tall opp (vekk fra null). |
SYND | Returnerer sinus for en vinkel. |
SUBTOTALT | Returnerer en sammendragsstatistikk for en serie med data. |
SUM | Legger tall sammen. |
SUMIF | Summer tall som oppfyller et kriterium. |
SUMIFER | Summer tall som oppfyller flere kriterier. |
SUMPRODUKT | Multipliserer matriser med tall og summerer den resulterende matrisen. |
TAN | Returnerer tangenten til en vinkel. |
Statistikk | |
GJENNOMSNITT | Gjennomsnittstall. |
GJENNOMSNITT | Gjennomsnittstall som oppfyller kriterier. |
GJENNOMSNITT | Gjennomsnittstall som oppfyller flere kriterier. |
CORREL | Beregner korrelasjonen mellom to serier. |
TELLE | Teller celler som inneholder et tall. |
COUNTA | Tell celler som ikke er tomme. |
TELLBLANK | Teller celler som er tomme. |
TELLING | Teller celler som oppfyller et kriterium. |
TELLINGER | Teller celler som oppfyller flere kriterier. |
PROGNOSE | Forutsi fremtidige y-verdier fra lineær trendlinje. |
FREKVENS | Teller verdier som faller innenfor angitte områder. |
VEKST | Beregner Y -verdier basert på eksponentiell vekst. |
AVSKJÆRE | Beregner Y-skjæringspunktet for en best egnet linje. |
STOR | Returnerer den kth største verdien. |
LINEST | Returnerer statistikk om en trendlinje. |
MAKS | Returnerer det største antallet. |
MEDIAN | Returnerer mediannummeret. |
MIN | Returnerer det minste tallet. |
MODUS | Returnerer det vanligste tallet. |
PERSENTIL | Returnerer kth -percentilen. |
PERCENTILE.INC | Returnerer kth -percentilen. Hvor k er inkluderende. |
PERCENTILE.EXC | Returnerer kth -percentilen. Hvor k er eksklusivt. |
KVARTIL | Returnerer den angitte kvartilverdien. |
QUARTILE.INC | Returnerer den angitte kvartilverdien. Inklusive. |
QUARTILE.EXC | Returnerer den angitte kvartilverdien. Eksklusiv. |
RANG | Rangering av et nummer i en serie. |
RANK.AVG | Rangering av et nummer i en serie. Gjennomsnitt. |
RANK.EQ | Rangering av et nummer i en serie. Å lure. |
SKRÅNINGEN | Beregner skråningen fra lineær regresjon. |
LITEN | Returnerer kth minste verdi. |
STDEV | Beregner standardavviket. |
STDEV.P | Beregner SD for en hel populasjon. |
STDEV.S | Beregner SD for en prøve. |
STDEVP | Beregner SD for en hel populasjon |
TREND | Beregner Y -verdier basert på en trendlinje. |
Tekst | |
REN | Fjerner alle tegn som ikke kan skrives ut. |
DOLLAR | Konverterer et tall til tekst i valutaformat. |
FINNE | Finner posisjonen til teksten i en celle. Saksfølsom. |
VENSTRE | Avkorter tekst til et antall tegn fra venstre. |
LEN | Teller antall tegn i teksten. |
MIDT | Trekker ut tekst fra midten av en celle. |
ORDENTLIG | Konverterer tekst til riktig bokstav. |
ERSTATTE | Erstatter tekst basert på plasseringen. |
REPT | Gjentar teksten flere ganger. |
IKKE SANT | Avkorter tekst til et antall tegn fra høyre. |
SØK | Finner posisjonen til teksten i en celle. Ikke store og små bokstaver. |
ERSTATNING | Finner og erstatter tekst. Skilt mellom store og små bokstaver. |
TEKST | Konverterer en verdi til tekst med et bestemt tallformat. |
LISTVERK | Fjerner alle ekstra mellomrom fra tekst. |