Er zijn veel manieren om functies in VBA te gebruiken. VBA wordt geleverd met veel ingebouwde functies. U kunt zelfs uw eigen functies (UDF's) maken. U kunt echter ook veel van de Excel-functies in VBA gebruiken door Application.WorksheetFunction te gebruiken.
Werkbladfuncties gebruiken in VBA
Om toegang te krijgen tot een Excel-functie in VBA, voegt u Application.WorksheetFunction toe voor de functie die u wilt aanroepen. In het onderstaande voorbeeld noemen we de Max Function van Excel:
12 | Dim maximale waarde zo langmaxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value) |
De syntaxis van de functies is hetzelfde, maar u voert de functieargumenten in zoals u bij elke andere VBA-functie zou doen.
Merk op dat de syntaxis van de Max-functie verschijnt wanneer u typt (vergelijkbaar met VBA-functies):
Werkblad Functie Methode
WorksheetFunction is een methode van Application-object. Hiermee hebt u toegang tot veel (niet alle) standaard Excel-werkbladfuncties. Over het algemeen krijgt u geen toegang tot werkbladfuncties met een overeenkomstige VBA-versie.
Hieronder ziet u een lijst met veel van de meest voorkomende werkbladfuncties.
Toepassing.WerkbladFunctie versus toepassing
Er zijn eigenlijk twee manieren om toegang te krijgen tot deze functies:
Application.WorksheetFunctie (zoals hierboven te zien):
1 | maxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value) |
of u kunt de werkbladfunctie weglaten
1 | maxvalue = Toepassing.Max(Bereik("a1").Waarde, Bereik("a2").Waarde) |
Helaas zal het weglaten van de werkbladfunctie de Intellisense elimineren die de syntaxis weergeeft (zie afbeelding hierboven). Het heeft echter één groot potentieel voordeel: Foutafhandeling.
Als u Application gebruikt en uw functie een fout genereert, wordt de foutwaarde geretourneerd. Als u de methode WorksheetFunction gebruikt, genereert VBA een runtime-fout. Natuurlijk kunt u de VBA-fout aan, maar het is meestal beter om de fout in de eerste plaats te vermijden.
Laten we een voorbeeld bekijken om het verschil te zien:
Vlookup-werkblad Functie Foutafhandeling
We zullen proberen een Vlookup uit te voeren die niet tot een match leidt. Dus de Vlookup-functie retourneert een fout.
Eerst gebruiken we de methode WorksheetFunction. Merk op hoe VBA een foutmelding geeft:
Vervolgens laten we de werkbladfunctie weg. Merk op hoe de
Vervolgens laten we de werkbladfunctie weg. Merk op hoe er geen fout wordt gegenereerd en in plaats daarvan bevat de functie 'waarde' de foutwaarde van de Vlookup.
Lijst met VBA-werkbladfuncties
Hieronder vindt u een lijst met de meeste veelvoorkomende VBA-werkbladfuncties.
Functie | Beschrijving |
---|---|
Logisch | |
EN | Controleert of aan alle voorwaarden is voldaan. WAAR ONWAAR |
INDIEN | Als aan de voorwaarde is voldaan, doe dan iets, zo niet, doe dan iets anders. |
IFERROR | Als het resultaat een fout is, doe dan iets anders. |
OF | Controleert of aan eventuele voorwaarden is voldaan. WAAR ONWAAR |
Opzoeken en verwijzen | |
KIEZEN | Kiest een waarde uit een lijst op basis van het positienummer. |
HORIZ.ZOEKEN | Zoek een waarde op in de eerste rij en retourneer een waarde. |
INHOUDSOPGAVE | Retourneert een waarde op basis van de kolom- en rijnummers. |
OPZOEKEN | Zoekt waarden horizontaal of verticaal op. |
BIJ ELKAAR PASSEN | Zoekt naar een waarde in een lijst en geeft zijn positie terug. |
TRANSPEREN | Draait de richting van een reeks cellen om. |
VERT.ZOEKEN | Zoek een waarde op in de eerste kolom en retourneer een waarde. |
Datum Tijd | |
DATUM | Retourneert een datum van jaar, maand en dag. |
DATUMWAARDE | Converteert een als tekst opgeslagen datum naar een geldige datum |
DAG | Retourneert de dag als een getal (1-31). |
DAGEN360 | Retourneert dagen tussen 2 datums in een jaar van 360 dagen. |
BEWERKEN | Retourneert een datum, n maanden verwijderd van een startdatum. |
EOMONTH | Retourneert de laatste dag van de maand, n maanden afwezigheidsdatum. |
UUR | Retourneert het uur als een getal (0-23). |
MINUUT | Retourneert de minuut als een getal (0-59). |
MAAND | Retourneert de maand als een getal (1-12). |
NETWERKDAGEN | Aantal werkdagen tussen 2 data. |
NETWERKDAGEN.INTL | Werkdagen tussen 2 data, aangepaste weekenden. |
NU | Retourneert de huidige datum en tijd. |
TWEEDE | Retourneert de tweede als een getal (0-59) |
TIJD | Retourneert de tijd van een uur, minuut en seconde. |
TIJDSWAARDE | Converteert een tijd die is opgeslagen als tekst naar een geldige tijd. |
WEEKDAG | Retourneert de dag van de week als een getal (1-7). |
WEEKNUMMER | Retourneert het weeknummer in een jaar (1-52). |
WERKDAG | De datum n werkdagen vanaf een datum. |
JAAR | Geeft het jaar terug. |
JAARFRAC | Retourneert de breuk van een jaar tussen 2 datums. |
Engineering | |
OVERZETTEN | Converteer nummer van de ene eenheid naar de andere. |
financieel | |
FV | Berekent de toekomstige waarde. |
PV | Berekent de huidige waarde. |
NPER | Berekent het totale aantal betalingstermijnen. |
PMT | Berekent het betalingsbedrag. |
TARIEF | Berekent de rentevoet. |
NPV | Berekent de netto contante waarde. |
IRR | Het interne rendement voor een reeks periodieke CF's. |
XIRR | Het interne rendement voor een set niet-periodieke CF's. |
PRIJS | Berekent de prijs van een obligatie. |
INTRAAT | De rentevoet van een volledig belegd effect. |
Informatie | |
ISERR | Test of celwaarde een fout is, negeert #N/A. WAAR ONWAAR |
ISERROR | Test of de celwaarde een fout is. WAAR ONWAAR |
ISEVEN | Test of de celwaarde even is. WAAR ONWAAR |
ISLOGISCH | Test of cel logisch is (TRUE of FALSE). WAAR ONWAAR |
ISNA | Test of de celwaarde #N/A is. WAAR ONWAAR |
ISNONTTEXT | Test of cel geen tekst is (lege cellen zijn geen tekst). WAAR ONWAAR |
ISNUMBER | Test of cel een getal is. WAAR ONWAAR |
IS VREEMD | Test of de celwaarde oneven is. WAAR ONWAAR |
ISTEXT | Test of cel tekst is. WAAR ONWAAR |
TYPE | Retourneert het type waarde in een cel. |
Wiskunde | |
buikspieren | Berekent de absolute waarde van een getal. |
AGGREGAAT | Definieer en voer berekeningen uit voor een database of een lijst. |
PLAFOND | Rondt een getal naar boven af op het dichtstbijzijnde gespecificeerde veelvoud. |
COS | Retourneert de cosinus van een hoek. |
GRADEN | Converteert radialen naar graden. |
DSOM | Somt databaserecords op die aan bepaalde criteria voldoen. |
OOK AL | Rondt af op het dichtstbijzijnde even gehele getal. |
EXP | Berekent de exponentiële waarde voor een bepaald getal. |
FEIT | Retourneert de faculteit. |
VLOER | Rondt een getal naar beneden af op het dichtstbijzijnde gespecificeerde veelvoud. |
GCD | Retourneert de grootste gemene deler. |
INT | Rondt een getal naar beneden af op het dichtstbijzijnde gehele getal. |
LCM | Retourneert het kleinste gemene veelvoud. |
LN | Retourneert de natuurlijke logaritme van een getal. |
LOG | Retourneert de logaritme van een getal naar een opgegeven grondtal. |
LOG10 | Retourneert de logaritme met grondtal 10 van een getal. |
MROUND | Rondt een getal af op een opgegeven veelvoud. |
VREEMD | Rondt af op het dichtstbijzijnde oneven gehele getal. |
PI | De waarde van PI. |
STROOM | Berekent een getal verheven tot een macht. |
PRODUCT | Vermenigvuldigt een reeks getallen. |
QUOTIËNT | Retourneert het gehele resultaat van deling. |
RADIANEN | Converteert een hoek naar radialen. |
RANDTUSSEN | Berekent een willekeurig getal tussen twee getallen. |
RONDE | Rondt een getal af op een opgegeven aantal cijfers. |
BENEDEN AFRONDEN | Rondt een getal naar beneden af (naar nul). |
NAAR BOVEN AFRONDEN | Rondt een getal naar boven af (weg van nul). |
ZONDE | Retourneert de sinus van een hoek. |
SUBTOTAAL | Retourneert een samenvattende statistiek voor een reeks gegevens. |
SOM | Telt getallen bij elkaar op. |
SUMIF | Telt getallen op die aan een criterium voldoen. |
SOMMEN | Telt getallen op die aan meerdere criteria voldoen. |
SOMPRODUCT | Vermenigvuldigt reeksen getallen en somt de resulterende reeks op. |
BRUINEN | Retourneert de tangens van een hoek. |
Statistieken | |
GEMIDDELD | Gemiddelden cijfers. |
GEMIDDELDEIF | Gemiddelden van getallen die voldoen aan een criterium. |
GEMIDDELDE IFS | Gemiddelden van getallen die aan meerdere criteria voldoen. |
CORREL | Berekent de correlatie van twee reeksen. |
GRAAF | Telt cellen die een getal bevatten. |
AANTAL | Tel cellen die niet leeg zijn. |
LEEG | Telt cellen die leeg zijn. |
AANTAL.ALS | Telt cellen die voldoen aan een criterium. |
AANTAL.ALS | Telt cellen die aan meerdere criteria voldoen. |
VOORSPELLING | Voorspel toekomstige y-waarden van lineaire trendlijn. |
FREQUENTIE | Telt waarden die binnen gespecificeerde bereiken vallen. |
GROEI | Berekent Y-waarden op basis van exponentiële groei. |
ONDERSCHEPPEN | Berekent het Y-snijpunt voor een best passende lijn. |
GROOT | Retourneert de k-grootste waarde. |
LIJNSCH | Retourneert statistieken over een trendlijn. |
MAX | Retourneert het grootste getal. |
MEDIAAN | Retourneert het mediaangetal. |
MIN | Retourneert het kleinste getal. |
MODUS | Retourneert het meest voorkomende getal. |
PERCENTIEL | Retourneert het k-percentiel. |
PERCENTIEL.INC | Retourneert het k-percentiel. Waar k inclusief is. |
PERCENTIEL.EXC | Retourneert het k-percentiel. Waar k exclusief is. |
Kwartiel | Retourneert de opgegeven kwartielwaarde. |
KWARTIEL.INC | Retourneert de opgegeven kwartielwaarde. Inclusief. |
KWARTIEL.EXC | Retourneert de opgegeven kwartielwaarde. Exclusief. |
RANG | Rang van een getal binnen een reeks. |
RANG.AVG | Rang van een getal binnen een reeks. Gemiddelden. |
RANG.EQ | Rang van een getal binnen een reeks. Een grap uithalen. |
HELLING | Berekent de helling van lineaire regressie. |
KLEIN | Retourneert de kde kleinste waarde. |
STDEV | Berekent de standaarddeviatie. |
STDEV.P | Berekent de SD van een hele populatie. |
STDEV.S | Berekent de SD van een monster. |
STDEVP | Berekent de SD van een hele populatie |
TREND | Berekent Y-waarden op basis van een trendlijn. |
Tekst | |
SCHOON | Verwijdert alle niet-afdrukbare tekens. |
DOLLAR | Converteert een getal naar tekst in valutanotatie. |
VIND | Lokaliseert de positie van tekst in een cel. Hoofdlettergevoelig. |
LINKS | Knipt tekst een aantal tekens van links af. |
LEN | Telt het aantal tekens in tekst. |
MIDDEN | Extraheert tekst uit het midden van een cel. |
JUIST | Converteert tekst naar de juiste hoofdletters. |
VERVANGEN | Vervangt tekst op basis van de locatie. |
REPT | Herhaalt tekst een aantal keer. |
RECHTSAF | Knipt tekst een aantal tekens van rechts af. |
ZOEKEN | Lokaliseert de positie van tekst in een cel. Niet hoofdlettergevoelig. |
VERVANGING | Zoekt en vervangt tekst. Hoofdlettergevoelig. |
TEKST | Converteert een waarde naar tekst met een specifieke getalnotatie. |
TRIM | Verwijdert alle extra spaties uit tekst. |