Door de gebruiker gedefinieerde functies maken in Microsoft Excel

Inhoudsopgave:

Door de gebruiker gedefinieerde functies maken in Microsoft Excel
Door de gebruiker gedefinieerde functies maken in Microsoft Excel

Video: Door de gebruiker gedefinieerde functies maken in Microsoft Excel

Video: Door de gebruiker gedefinieerde functies maken in Microsoft Excel
Video: Helpen bij huiswerk: haalbare tips voor ouders 2024, Mei
Anonim

Hoewel Excel al honderden ingebouwde functies heeft, zoals SOM, VERT. ZOEKEN, LINKS, enzovoort, zijn de beschikbare ingebouwde functies meestal niet voldoende om redelijk complexe taken uit te voeren. Maak je echter geen zorgen, want je hoeft alleen de benodigde functies zelf aan te maken.

Stap

Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 1
Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 1

Stap 1. Maak een nieuwe werkmap of open de werkmap die u wilt verwerken met User Defined Functions (UDF)

Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 2
Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 2

Stap 2. Open de Visual Basic Editor in Microsoft Excel via Extra->Macro->Visual Basic Editor (of druk op de sneltoets Alt+F11)

Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 3
Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 3

Stap 3. Klik op de knop Module om een nieuwe module aan uw werkblad toe te voegen

U kunt een UDF in een werkmap maken zonder een nieuwe module toe te voegen, maar de functie werkt niet in andere werkbladen in dezelfde werkmap.

Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 4
Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 4

Stap 4. Maak de "head" of "prototype" van uw functie

Het functie-prototype moet de volgende structuur volgen:

openbare functie "Functienaam" (parameter1 Als type1, parameter2 Als type2) Als resultaattype.

Prototypes kunnen zoveel mogelijk functies hebben en hun typen kunnen alle basisgegevenstypen zijn of Excel-objecttypen in de vorm van Bereik. U kunt parameters beschouwen als "operanten" (operators) waarop de functie zal reageren. Als u bijvoorbeeld SIN(45) schrijft om de sinus van 45 graden te berekenen, wordt het getal 45 als parameter genomen. Vervolgens gebruikt de functiecode die waarden om berekeningen uit te voeren en de resultaten weer te geven.

Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 5
Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 5

Stap 5. Voeg de functiecode toe om ervoor te zorgen dat u: 1) de waarde gebruikt die door de parameter wordt gegeven; 2) geef het resultaat door aan de functienaam; en 3) sluit de functie af met de zin " end function ". Leren programmeren in VBA of in een andere taal kost veel tijd en gedetailleerde begeleiding. Gelukkig hebben deze functies meestal kleine codeblokken en maken ze niet veel gebruik van programmeertaalfuncties. Hier zijn enkele elementen van de VBA-taal die kunnen worden gebruikt:

  1. Het If (if)-blok, waarmee u een deel van de code alleen kunt uitvoeren als aan de voorwaarde is voldaan. Als voorbeeld:
  2. Cursusresultaat openbare functie (als geheel getal) As String

    Als waarde >= 5 Dan

    Cursusresultaten = "Geaccepteerd"

    Anders

    Cursusresultaten = "Afgewezen"

    Stop als

    Functie beëindigen

    Let op de elementen in het If-codeblok:

    IF conditie THEN code ELSE code END IF

  3. . U kunt het Else-sleutelwoord samen met het tweede deel van de code weglaten omdat dit optioneel is.
  4. Het Do (do)-blok, dat een deel van de While- of Tot-code uitvoert wanneer of totdat aan de voorwaarde is voldaan. Als voorbeeld:
  5. Publieke functie BilPrima(waarde als geheel getal) As Boolean

    Dim ik als geheel getal

    ik = 2

    BilPrima = True

    Doen

    Als waarde / i = Int(waarde / i) Dan

    BilPrima = Onwaar

    Stop als

    ik = ik + 1

    Loop While i < value And NumberPrima = True

    Functie beëindigen

    Kijk nog eens naar de elementen:

    DO code LOOP WHILE/UNTIL conditie

  6. . Let ook op de tweede regel die de variabele "declareert". U kunt variabelen aan uw code toevoegen voor later gebruik. Variabelen fungeren als tijdelijke waarden in de code. Beschouw ten slotte de functiedeclaratie als BOOLEAN, een gegevenstype dat alleen TRUE of FALSE-waarden toestaat. Deze methode om priemgetallen te bepalen is verre van optimaal, maar de code is zo geschreven dat hij goed leesbaar is.
  7. voor blok (to), die een bepaalde hoeveelheid code uitvoert. Als voorbeeld:
  8. Public Function Factorial (waarde als geheel getal) Zo lang

    Dim resultaten Zo lang

    Dim ik als geheel getal

    Als waarde = 0 Dan

    resultaat = 1

    ElseIf-waarde = 1 Dan

    resultaat = 1

    Anders

    resultaat = 1

    Voor i = 1 Naar waarde

    resultaat= resultaat * i

    Volgende

    Stop als

    Faculteit = resultaat

    Functie beëindigen

    Kijk nog eens naar de elementen:

    FOR variabele = ondergrens TO bovengrens van code NEXT

    . Let ook op het extra ElseIf-element in de If-instructie, waarmee u meer opties kunt toevoegen aan de code die wordt uitgevoerd. Overweeg ten slotte de functie "resultaat" en de variabele die is gedeclareerd als Long. Het gegevenstype Long staat veel grotere waarden toe dan Integer.

    Hieronder ziet u de code voor een functie die kleine getallen omzet in woorden.

    Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 6
    Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 6

    Stap 6. Keer terug naar de werkmap en gebruik de functie door het symbool "is gelijk aan" (=) gevolgd door de naam van de functie in de cel te schrijven

    Schrijf de openingshaakjes (“(“) achter de functienaam, met het teken coma om de parameters te scheiden, en eindigen met haakjes sluiten (“)”). Als voorbeeld:

    = Getal Naar Letter (A4)

    . U kunt ook zelfgemaakte formules gebruiken door ernaar te zoeken in categorieën Gebruiker gedefinieerde binnen de optie Formule invoegen. Je klikt gewoon op de knop FX links van de formulebalk. Er zijn drie soorten parametervormen in functies:

    1. Een constante waarde die rechtstreeks in de celformule wordt getypt. In dit geval moet de tekst (string) tussen aanhalingstekens staan.
    2. Celverwijzingen, bijvoorbeeld B6 of bereik zoals A1:C3 (parameter moet gegevenstype " Range " zijn)
    3. Een andere functie die in uw functie is ingesloten (uw functie kan ook in een andere functie zijn ingesloten), bijvoorbeeld: =Factoriaal(MAX(D6:D8))

      Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 7
      Maak een door de gebruiker gedefinieerde functie in Microsoft Excel Stap 7

      Stap 7. Zorg ervoor dat de resultaten correct zijn

      Gebruik het meerdere keren om ervoor te zorgen dat de functie verschillende parameterwaarden correct kan verwerken:

      Tips

      • Wanneer u codeblokken schrijft in besturingsstructuren zoals If, For, Do, enz., zorg er dan voor dat u het codeblok inspringt (voeg de linkerlijnrand iets naar binnen toe) door meerdere keren op de spatiebalk te drukken, of tab. Dit maakt de code gemakkelijker te begrijpen en fouten zijn veel gemakkelijker te vinden. Daarnaast wordt de verhoging van de functionaliteit makkelijker te maken.
      • Als u niet weet hoe u code voor functies moet schrijven, lees dan het artikel Een eenvoudige macro schrijven in Microsoft Excel.
      • Soms hebben functies niet alle parameters nodig om het resultaat te berekenen. In dit geval kunt u het sleutelwoord Optioneel gebruiken vóór de parameternaam in de functiekop. U kunt de functie IsMissing(parameter_name) in uw code gebruiken om te bepalen of aan een parameter een waarde is toegewezen of niet.
      • Gebruik ongebruikte namen als functies in Excel, zodat er geen functies worden overschreven en verwijderd.
      • Excel heeft veel ingebouwde functies en de meeste berekeningen kunnen worden uitgevoerd met behulp van deze ingebouwde functies, afzonderlijk of allemaal tegelijk. Zorg ervoor dat je de lijst met beschikbare functies bekijkt voordat je zelf gaat coderen. Uitvoering kan sneller als u ingebouwde functies gebruikt.

      Waarschuwing

      • Om veiligheidsredenen schakelen veel mensen macro's uit. Zorg ervoor dat u uw werkmapontvangers op de hoogte stelt dat de ingediende werkmap macro's bevat en dat deze macro's hun computers niet schaden.
      • De functie die in dit artikel wordt gebruikt, is niet de beste manier om het gerelateerde probleem op te lossen. Het voorbeeld wordt gebruikt om het gebruik van taalcontrolestructuren uit te leggen.
      • VBA heeft, net als andere talen, verschillende andere besturingsstructuren naast Do, If en For. De hier besproken structuur beschrijft alleen wat er in de broncode van de functie kan worden gedaan. Er zijn veel handleidingen op internet die kunnen worden gebruikt om u te helpen VBA te leren.

Aanbevolen: