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
Stap 1. Skep 'n nuwe werkboek of maak die werkboek oop wat u met User Defined Functions (UDF) wil verwerk
Stap 2. Maak die Visual Basic Editor in Microsoft Excel oop via Tools-> Macro-> Visual Basic Editor (of druk die kortpad Alt+F11)
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.
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.
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:
- Die If (if) -blok, waarmee u slegs 'n gedeelte kode kan uitvoer as aan die voorwaarde voldoen is. As 'n voorbeeld:
- . U kan die ander sleutelwoord saam met die tweede deel van die kode weglaat, aangesien dit opsioneel is.
- 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:
- . 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.
- Vir blok (aan), wat 'n sekere hoeveelheid kode uitvoer. As 'n voorbeeld:
- 'N Konstante waarde wat direk in die selformule ingetik word. In hierdie geval moet die teks (string) aangehaal word.
- Selverwysings, byvoorbeeld B6 of wissel soos A1: C3 (parameter moet datatipe “Range” wees)
-
'N Ander funksie wat in u funksie ingesluit is (u funksie kan ook in 'n ander funksie ingesluit word), byvoorbeeld: = Faktoriaal (MAX (D6: D8))
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.
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
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
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.
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: