Hoe om gebruikersgedefinieerde funksies in Microsoft Excel te skep

INHOUDSOPGAWE:

Hoe om gebruikersgedefinieerde funksies in Microsoft Excel te skep
Hoe om gebruikersgedefinieerde funksies in Microsoft Excel te skep

Video: Hoe om gebruikersgedefinieerde funksies in Microsoft Excel te skep

Video: Hoe om gebruikersgedefinieerde funksies in Microsoft Excel te skep
Video: Вощение нити своими руками (3 способа) 2024, April
Anonim

Alhoewel Excel reeds honderde ingeboude funksies soos SUM, VLOOKUP, LEFT, ensovoorts het, is die beskikbare ingeboude funksies gewoonlik nie voldoende genoeg om taamlik ingewikkelde take uit te voer nie. Moenie bekommerd wees nie, want u hoef slegs die vereiste funksies self te skep.

Stap

Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 1
Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 1

Stap 1. Skep 'n nuwe werkboek of maak die werkboek oop wat u met User Defined Functions (UDF) wil verwerk

Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 2
Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 2

Stap 2. Maak die Visual Basic Editor in Microsoft Excel oop via Tools-> Macro-> Visual Basic Editor (of druk die kortpad Alt+F11)

Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 3
Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 3

Stap 3. Klik op die Module -knoppie om 'n nuwe module by u werkblad te voeg

U kan 'n UDF in 'n werkboek skep sonder om 'n nuwe module by te voeg, maar die funksie werk nie in ander werkblaaie in dieselfde werkboek nie.

Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 4
Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 4

Stap 4. Skep die "kop" of "prototipe" van u funksie

Die funksie prototipe moet die volgende struktuur volg:

openbare funksie "Funksienaam" (parameter1 As tipe1, parameter2 As tipe2) As Resultaat tipe.

Prototipes kan soveel funksies as moontlik hê, en hul tipes kan alle basiese datatipes of Excel -objek tipes in die vorm van Range wees. U kan parameters as 'operante' (operateurs) beskou waarop die funksie sal werk. Byvoorbeeld, as u SIN (45) skryf om die sinus van 45 grade te bereken, word die getal 45 as 'n parameter geneem. Dan gebruik die funksiekode die waardes om berekeninge uit te voer en die resultate te vertoon.

Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 5
Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 5

Stap 5. Voeg die funksiekode by om te verseker dat u: 1) die waarde wat deur die parameter gegee word, gebruik; 2) gee die resultaat aan die funksienaam; en 3) sluit die funksie met die sin "eindfunksie". Leer om in VBA of in enige ander taal te programmeer, verg baie tyd en gedetailleerde leiding. Gelukkig het hierdie funksies gewoonlik klein kodeblokke en maak dit nie veel gebruik van programmeertaalfunksies nie. Hier is 'n paar elemente van die VBA -taal wat gebruik kan word:

  1. Die If (if) -blok, waarmee u slegs 'n gedeelte kode kan uitvoer as aan die voorwaarde voldoen is. As 'n voorbeeld:
  2. Openbare funksie kursusresultaat (as heelgetalwaarde) as string

    As waarde> = 5 Dan

    Kursusuitslae = "Aanvaar"

    Andersins

    Kursusuitslae = "Verwerp"

    Einde As

    Eindfunksie

    Let op die elemente in die If -kodeblok:

    AS toestand DAN kode ELSE kode EINDE IF

  3. . U kan die ander sleutelwoord saam met die tweede deel van die kode weglaat, aangesien dit opsioneel is.
  4. Die Do (doen) -blok, wat 'n gedeelte van die Terwyl of Tot -kode uitvoer wanneer of totdat aan die voorwaarde voldoen is. As 'n voorbeeld:
  5. Openbare funksie BilPrima (waarde as heelgetal) as Booleaans

    Dim i As heelgetal

    ek = 2

    BilPrima = Waar

    Doen

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

    BilPrima = Onwaar

    Einde As

    ek = i + 1

    Lus terwyl i <waarde En NumberPrima = True

    Eindfunksie

    Kyk weer na die elemente:

    DO kode LOOP TERWYL/TOT toestand

  6. . Let ook op die tweede reël wat die veranderlike "verklaar". U kan veranderlikes by u kode voeg vir latere gebruik. Veranderlikes tree op as tydelike waardes in die kode. Beskou ten slotte die funksieverklaring as BOOLEAN, 'n datatipe wat slegs WAAR of ONWAAR waardes toelaat. Hierdie metode om priemgetalle te bepaal, is ver van optimaal, maar die kode is so geskryf dat dit maklik is om te lees.
  7. Vir blok (aan), wat 'n sekere hoeveelheid kode uitvoer. As 'n voorbeeld:
  8. Openbare funksiefaktoriaal (waarde as heelgetal) so lank

    Dowwe resultate so lank

    Dim i As heelgetal

    As waarde = 0 Dan

    resultaat = 1

    ElseIf waarde = 1 Dan

    resultaat = 1

    Andersins

    resultaat = 1

    Vir i = 1 Om te waardeer

    resultaat = resultaat * i

    Volgende

    Einde As

    Faktoriaal = resultaat

    Eindfunksie

    Kyk weer na die elemente:

    VIR veranderlike = onderste grens TOT boonste limiet van kode VOLGENDE

    . Let ook op die bykomende ElseIf -element in die If -verklaring, waarmee u meer opsies kan byvoeg by die kode wat uitgevoer word. Oorweeg laastens die funksie "resultaat" en veranderlike wat as lank verklaar is. Die lang datatipe laat veel groter waardes toe as heelgetal.

    Hieronder word die kode vir 'n funksie getoon wat klein getalle in woorde omskakel.

    Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 6
    Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 6

    Stap 6. Keer terug na die werkboek en gebruik die funksie deur die "gelyke" simbool (=) te skryf, gevolg deur die naam van die funksie in die sel

    Skryf die openingshakies ("(") agter die funksienaam, met behulp van die teken koma om die parameters te skei en te eindig met hakies (")"). As 'n voorbeeld:

    = NumberToLetter (A4)

    . U kan ook tuisgemaakte formules gebruik deur dit in kategorieë te soek Gebruiker gedefinieerd binne die opsie Voeg formule in. U klik net op die knoppie Fx links van die formulebalk. Daar is drie tipes parametervorme in funksies:

    1. 'N Konstante waarde wat direk in die selformule ingetik word. In hierdie geval moet die teks (string) aangehaal word.
    2. Selverwysings, byvoorbeeld B6 of wissel soos A1: C3 (parameter moet datatipe “Range” wees)
    3. 'N Ander funksie wat in u funksie ingesluit is (u funksie kan ook in 'n ander funksie ingesluit word), byvoorbeeld: = Faktoriaal (MAX (D6: D8))

      Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 7
      Skep 'n gebruikersgedefinieerde funksie in Microsoft Excel Stap 7

      Stap 7. Maak seker dat die resultate korrek is

      Gebruik dit verskeie kere om seker te maak dat die funksie verskillende parameterwaardes korrek kan hanteer:

      Wenke

      • As u kodeblokke in kontrolestrukture soos If, For, Do, ens. Skryf, maak seker dat u die kodeblok inkruip (plaas die linkerlyngrens effens binne -in) deur die spasiebalk verskeie kere of op die oortjie te druk. Dit maak die kode makliker om te verstaan en dit is baie makliker om foute te vind. Boonop word die toename in funksionaliteit makliker om te maak.
      • As u nie weet hoe om kode vir funksies te skryf nie, lees die artikel Hoe om 'n eenvoudige makro in Microsoft Excel te skryf.
      • Soms benodig funksies nie al die parameters om die resultaat te bereken nie. In hierdie geval kan u die opsionele sleutelwoord voor die parameternaam in die funksieopskrif gebruik. U kan die funksie IsMissing (parameternaam) in u kode gebruik om te bepaal of 'n parameter 'n waarde toegeken word of nie.
      • Gebruik ongebruikte name as funksies in Excel, sodat geen funksies oorskryf en verwyder word nie.
      • Excel het baie ingeboude funksies en die meeste berekeninge kan uitgevoer word met behulp van hierdie ingeboude funksies, hetsy individueel of alles tegelyk. Kyk eers na die lys beskikbare funksies voordat u self begin kodeer. U kan vinniger uitgevoer word as u ingeboude funksies gebruik.

      Waarskuwing

      • Om veiligheidsredes skakel baie mense makros uit. Maak seker dat u die ontvangers van u werkboek in kennis stel dat die ingediende werkboek makros het en dat hierdie makros nie hul rekenaars benadeel nie.
      • Die funksie wat in hierdie artikel gebruik word, is nie die beste manier om die verwante probleem op te los nie. Die voorbeeld word gebruik om die gebruik van taalbeheerstrukture te verduidelik.
      • VBA het, net soos ander tale, verskillende beheerstrukture behalwe Do, If en For. Die struktuur wat hier bespreek word, beskryf slegs wat in die bronkode van die funksie gedoen kan word. Daar is baie gidse op die internet wat u kan help om VBA te leer.

Aanbeveel: