Hoe u een door de gebruiker gedefinieerde functie maakt in Microsoft Excel

Schrijver: Alice Brown
Datum Van Creatie: 4 Kunnen 2021
Updatedatum: 15 Kunnen 2024
Anonim
Excel VBA Intermediate Tutorial - Creating User Defined Functions (UDFs)
Video: Excel VBA Intermediate Tutorial - Creating User Defined Functions (UDFs)

Inhoud

Hoewel Excel veel, waarschijnlijk honderden ingebouwde functies heeft, zoals SOM, VERT.ZOEKEN, LINKS, enzovoort, merkt u vaak dat u een functie nodig hebt die niet bestaat wanneer u Excel gaat gebruiken voor meer gecompliceerde taken. Maak je geen zorgen, niet alles is verloren; alles wat je nodig hebt is om de gewenste functie te creëren.

Stappen

  1. Maak een nieuwe werkmap of open de werkmap waarin u uw zojuist gemaakte User Defined Function (FDU) wilt gebruiken.

  2. Open de Visual Basic Editor die is ingebouwd in Microsoft Excel door naar Extra-> Macro-> Visual Basic Editor te gaan (of door op Alt + F11 te drukken).

  3. Voeg een nieuwe module toe naar uw werkmap door op de aangegeven knop te klikken. U kunt de door de gebruiker gedefinieerde functie op het werkblad zelf maken zonder een nieuwe module toe te voegen, maar hierdoor kunt u deze niet op andere werkbladen in dezelfde werkmap gebruiken.

  4. Maak de "header" of "prototype" van uw functie. U moet de volgende structuur hebben: openbare functie TheNameOfYourFunction (param1 As type1, param2 As type2) As returnType Er kunnen zoveel parameters zijn als gewenst, en hun type kan een van de basisgegevenstypen of Excel-objecttypen zijn, zoals Bereik. U kunt parameters zien als de "operanden" waarop uw functie zal werken. Als u bijvoorbeeld SIN (45) zegt om de sinus van 45 graden te berekenen, wordt 45 als parameter genomen. Vervolgens gebruikt uw functiecode deze waarde om een ​​berekening uit te voeren en het resultaat te presenteren.
  5. Voeg de functiecode toe en zorg ervoor dat: 1) gebruik de waarden die door de parameters worden verstrekt; 2) wijs het resultaat toe aan de functienaam; en 3) sluit de functie met "end function". Leren programmeren in VBA of een andere taal kan enige tijd in beslag nemen en vereist een gedetailleerde tutorial. Functies hebben echter vaak kleine codeblokken en gebruiken weinig taalbronnen. De meest bruikbare elementen van de VBA-taal zijn:
    1. Het blok Als, waarmee u een deel van de code alleen kunt uitvoeren als aan een voorwaarde is voldaan. Bijvoorbeeld:


      Openbare functie CourseResult (grid As Integer) As String
      Als cijfer> = 5 Dan
      CourseResult = "Goedgekeurd"
      Anders
      CourseResult = "Afgewezen"
      Stop als
      Einde functie

      Let op de elementen in een codeblok Als: ALS voorwaarde THEN code ELSE code END IF. Het sleutelwoord Anders samen met het tweede deel van de code zijn optioneel.
    2. Het blok Van, die een stukje code uitvoert Terwijl (terwijl) of Tot (totdat) aan een voorwaarde is voldaan. Bijvoorbeeld:

      Openbare functie IsPrime (waarde As Integer) As Boolean
      Dim i als geheel getal
      ik = 2
      IsPrime = Waar
      Van
      Als waarde / i = Int (waarde / i) Dan
      IsPrime = False
      Stop als
      ik = ik + 1
      Loop While i <waarde And IsPrime = True
      Einde functie

      Kijk nog eens naar de elementen: DOE code LOOP TERWIJL / TOT voorwaarde. Let ook op de tweede regel waar een variabele wordt "gedeclareerd". U kunt variabelen aan uw code toevoegen, zodat u ze later kunt gebruiken. Variabelen fungeren als tijdelijke waarden binnen de code. Bekijk ten slotte de functiedeclaratie als BOOLEAN, een gegevenstype dat alleen de waarden TRUE en FALSE toestaat. Deze methode om te bepalen of een getal een priemgetal is, is niet ideaal, maar ik laat het er liever bij staan ​​om de code beter leesbaar te maken.
    3. Het blok Voor, dat een bepaald aantal keren een stuk code uitvoert. Bijvoorbeeld:

      Public Function Factorial (value As Integer) As Long
      Dim resultaat zo lang
      Dim i als geheel getal
      Als waarde = 0 Dan
      resultaat = 1
      ElseIf waarde = 1 Then
      resultaat = 1
      Anders
      resultaat = 1
      Voor i = 1 tot waarde
      resultaat = resultaat * i
      De volgende
      Stop als
      Factorial = resultaat
      Einde functie

      Kijk nog eens naar de elementen:FOR variabele = ondergrens TO bovengrens code VOLGENDE. Let ook op het element Anders toegevoegd in de verklaring Als, waarmee u meer opties kunt toevoegen om de code uit te voeren. Kijk ten slotte naar de functieverklaring en de variabele "resultaat" als Lang​Het gegevenstype Lang staat veel hogere waarden toe dan ’Geheel getal’.

      Hieronder staat de code voor een functie die getallen omzet in woorden.
  6. Ga terug naar je werkboek en gebruik de functie door de inhoud van een cel te beginnen met een Gelijk gevolgd door de naam van uw rol. Voeg een haakje openen toe aan de functienaam, de parameters gescheiden door komma en een laatste haakje sluiten. Bijvoorbeeld:= NumberToLetters (A4) U kunt ook uw door de gebruiker gedefinieerde formule gebruiken door ernaar te zoeken in de categorie Gebruiker gedefinieerde in de wizard om de formule in te voeren. Klik gewoon op de knop Fx bevindt zich aan de linkerkant van de formulebalk. Er kunnen drie typen parameters zijn:
    1. Constante waarden die rechtstreeks in de celformule worden ingevoerd. Tekenreeksen moeten in dit geval tussen aanhalingstekens worden geplaatst.
    2. Celverwijzingen zoals B6 of intervallen zoals A1: C3 (de parameter moet van het type Breken"")
    3. Andere functies die binnen uw functie zijn gerangschikt (uw functie kan ook binnen andere functies worden gegroepeerd). Dat is: = Factorial (MAX (D6: D8))
  7. Controleer of het resultaat in orde is na meerdere keren gebruik van de functie ervoor zorgen dat deze verschillende parameterwaarden correct verwerkt:

Tips

  • Wanneer u een codeblok schrijft binnen een controlestructuur zoals If, For, Do etc., vergeet dan niet om het blok te laten inspringen met behulp van enkele spaties of tabs (de inspringingsstijl is aan u).Op deze manier wordt uw code gemakkelijker te begrijpen en wordt het veel gemakkelijker om fouten op te sporen en de code te verbeteren.
  • Excel heeft veel ingebouwde functies en de meeste berekeningen kunnen alleen of in combinatie worden uitgevoerd. Zoek in de lijst met beschikbare functies voordat u uw eigen code start. De uitvoering kan sneller zijn als u ingebouwde functies gebruikt.
  • Soms heeft een functie mogelijk niet alle parameters nodig om een ​​resultaat te berekenen. In dat geval kunt u het trefwoord gebruiken Optioneel voor de parameternaam in de functiekop. U kunt de IsMissing (parameternaam) binnen de code om te bepalen of een waarde is toegewezen aan de parameter of niet.
  • Als u niet weet hoe u de code voor een functie moet schrijven, lees dan Hoe u een eenvoudige macro schrijft in Microsoft Excel.
  • Gebruik een naam die nog niet is gedefinieerd als een functienaam in Excel, anders kunt u uiteindelijk slechts één van de functies gebruiken.

Waarschuwingen

  • Vanwege beveiligingsmaatregelen kunnen sommige mensen macro's uitschakelen. Laat uw collega's weten dat het boek dat u verzendt macro's bevat en vertrouwd kan worden omdat ze uw computers niet beschadigen.
  • De functies die in dit artikel worden gebruikt, zijn niet de beste manier om de genoemde problemen op te lossen. Ze werden alleen gebruikt om het gebruik van taalcontrolestructuren uit te leggen.
  • VBA heeft, net als elke andere taal, naast Do, If en For nog verschillende andere besturingsstructuren. Deze werden hier uitgelegd om duidelijk te maken wat er binnen de broncode van de functie kan worden gedaan. Er zijn veel online tutorials beschikbaar waar u VBA kunt leren.

Hoe handmaat te meten

Virginia Floyd

Kunnen 2024

Al u uw pavorm voor een honkbalhandchoen meet, meet dan vanaf het topje van uw wijvinger tot aan uw pol. Dit getal, in inche, komt overeen met de vermelde maat van de handchoen. Al u meet voor de grip...

Internetradio opnemen

Virginia Floyd

Kunnen 2024

Andere ectie Bijna alle radiotation zenden hun kanaal nu zowel via internet al ether uit. Door de lage bandbreedteprij en de hoge downloadnelheden die nu haalbaar zijn, kunt u zonder vertraging online...

Selecteer Administratie