Zelfs als Excel veel, waarschijnlijk honderden, ingebouwde functies heeft zoals SUM, VLOOKUP, LEFT, enzovoort, zodra je Excel gaat gebruiken voor meer gecompliceerde taken, zul je vaak merken dat je een functie nodig hebt die niet bestaat. Maak je geen zorgen, je bent helemaal niet verdwaald, alles wat je nodig hebt is om de functie zelf te maken.

Stappen

  1. 1 Maak een nieuwe werkmap of open de werkmap waarin u uw nieuw gemaakte gebruikersgedefinieerde functie (UDF) wilt gebruiken.
  2. 2 Open de Visual Basic-editor die is ingebouwd in Microsoft Excel door naar Tools-> Macro-> Visual Basic Editor te gaan (of door op Alt + F11 te drukken).
  3. 3 Voeg een nieuwe module toe naar uw werkmap door op de weergegeven knop te klikken. U kunt de door de gebruiker gedefinieerde functie in het werkblad zelf maken zonder een nieuwe module toe te voegen, maar hierdoor kunt u de functie niet gebruiken in andere werkbladen van dezelfde werkmap.
  4. 4 Maak de "header" of "prototype" van uw functie. Het moet de volgende structuur hebben:
    publieke functie "De naam van uw functie" (param1 Als type1, param2 Als type2) Als retourtype Het kan zoveel parameters bevatten als u wilt, en hun type kan elk van de basistyptetypen of objecttypen van Excel als bereik zijn. U kunt parameters beschouwen als de "operanden" waar uw functie op zal reageren. Als u bijvoorbeeld SIN (45) zegt om de Sinus van 45 graden te berekenen, worden er 45 als parameter genomen. Dan gebruikt de code van uw functie die waarde om iets anders te berekenen en het resultaat te presenteren.
  5. 5 Voeg de code van de functie toe en zorg ervoor dat je 1) de waarden gebruikt die door de parameters worden geboden; 2) wijs het resultaat toe aan de naam van de functie; en 3) sluit de functie met "eindfunctie". Leren om te programmeren in VBA of in een andere taal kan enige tijd duren en een gedetailleerde tutorial. Functies hebben echter meestal kleine codeblokken en gebruiken maar heel weinig functies van een taal. De nuttiger elementen van de VBA-taal zijn:
    1. De Als blokkeren, waarmee u een deel van de code alleen kunt uitvoeren als aan een voorwaarde is voldaan. Bijvoorbeeld:

      Public Function Course Resultaat (cijfer Als geheel getal) As String
      Als cijfer> = 5 Dan
      CourseResult = "Goedgekeurd"
      Anders
      CourseResult = "Afgewezen"
      Stop als
      Eindfunctie

      Let op de elementen in een Als codeblok: IF-conditie DAN code ELSE-code END IF. De Anders sleutelwoord, samen met het tweede deel van de code zijn optioneel.
    2. De Do blok, dat een deel van de code uitvoert Terwijl of Tot een voorwaarde is voldaan. Bijvoorbeeld:
      Public Function IsPrime (value As Integer) As Boolean
      Dim i As Integer
      i = 2
      IsPrime = Waar
      Do
      Als waarde / i = Int (waarde / i) Dan
      IsPrime = False
      Stop als
      i = i + 1
      Loop While i <value And IsPrime = True
      Eindfunctie

      Let opnieuw op de elementen: DO code LOOP WHILE / UNTIL conditie. Let ook op de tweede regel waarin een variabele "gedeclareerd" is. U kunt variabelen aan uw code toevoegen, zodat u ze later kunt gebruiken. Variabelen fungeren als tijdelijke waarden in de code. Let ten slotte op de verklaring van de functie als BOOLEAN, een gegevenstype dat alleen de WAAR- en ONWAAR-waarden toestaat. Deze methode om te bepalen of een getal prime is, is lang niet het optimale, maar ik heb het zo laten liggen om de code leesbaarder te maken.
    3. De Voor blok, dat een bepaald aantal keren een deel van de code uitvoert. Bijvoorbeeld:
      Public Function Factorial (value As Integer) As Long
      Dimresultaat As Long
      Dim i As Integer
      Als waarde = 0 Dan
      resultaat = 1
      Anders Als waarde = 1 Vervolgens
      resultaat = 1
      Anders
      resultaat = 1
      Voor i = 1 Om te waarderen
      resultaat = resultaat * i
      volgende
      Stop als
      Factorie = resultaat
      Eindfunctie

      Let opnieuw op de elementen:FOR variable = lower limit TO upper limit code VOLGENDE. Let ook op de toegevoegde ElseIf element in de Als statement, waarmee u meer opties kunt toevoegen aan de code die moet worden uitgevoerd. Let ten slotte op de verklaring van de functie en het variabele "resultaat" als Lang. De Lang datatype staat waarden toe die veel groter zijn dan Geheel getal.
      Hieronder wordt de code weergegeven voor een functie die kleine getallen omzet in woorden.
  6. 6 Ga terug naar je werkboek en gebruik de functie door de inhoud van een cel te starten met een Gelijk teken gevolgd door de naam van uw functie. Voeg aan de naam van de functie een openingshaak toe, de parameters gescheiden door komma's en een laatste haakje sluiten. Bijvoorbeeld:
    = NumberToLetters (A4)
    U kunt ook uw door de gebruiker gedefinieerde formule gebruiken door ernaar te zoeken in de Gebruiker gedefinieerde categorie in de wizard Invoegformule. Klik gewoon in de Fx knop links van de formulebalk. De parameters kunnen uit drie soorten zijn:
    1. Constante waarden die direct in de celformule zijn getypt. Strings moeten in dit geval worden aangehaald.
    2. Celverwijzingen zoals B6 of bereik verwijzingen zoals A1: C3 (de parameter moet van de zijn reeks data type)
    3. Andere functies die in uw functie zijn genest (uw functie kan ook in andere functies worden genest). I.e .: = Factorial (MAX (D6: D8))
  7. 7 Controleer of het resultaat OK is nadat u de functie verschillende keren hebt gebruikt om ervoor te zorgen dat deze verschillende parameterwaarden correct verwerkt: