Hoe kinne jo oanpaste funksjes brûke en bewarje yn Excel

  • Diel Dit
Michael Brown

Hjoed sille wy trochgean mei it ferkennen fan oanpaste Excel-funksjes. Sa't jo al witte hoe't jo UDF's kinne oanmeitsje (en, ik hoopje, jo hawwe ek besocht se yn jo Excel ta te passen), litte wy wat djipper grave en learje hoe't jo troch brûkers definieare funksjes yn Excel kinne brûke en opslaan.

Boppedat sille wy jo sjen litte hoe't jo jo funksjes maklik opslaan kinne yn in Excel-tafoegingsbestân om se letter yn in pear mûsklikken te brûken.

Dus, hjir is wêr't wy oer prate:

    Ferskillende manieren om UDF's yn Excel te brûken

    UDF's brûke yn wurkblêden

    As jo ​​ienris ferifiearre hawwe dat jo UDF's goed wurkje, kinne jo se brûke yn Excel formules of yn VBA-koade.

    Jo kinne oanpaste funksjes tapasse yn in Excel-wurkboek op deselde wize as jo gewoane funksjes brûke. Skriuw bygelyks gewoan yn in sel de formule hjirûnder:

    = GetMaxBetween(A1:A6,10,50)

    UDF kin brûkt wurde yn kombinaasje mei reguliere funksjes. Foegje bygelyks tekst ta oan de berekkene maksimale wearde:

    = CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))

    Jo kinne it resultaat sjen yn 'e skermprint hjirûnder:

    Jo kin it nûmer fine dat sawol maksimum is as yn it berik fan 10 oant 50.

    Litte wy in oare formule kontrolearje:

    = INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the

    De oanpaste funksje GetMaxBetween kontrolearret it berik B2:B9 en fynt it maksimum oantal tusken 10 en 50. Dan, mei INDEX + MATCH, krije wy de produktnamme dy't oerienkomt mei dizze maksimale wearde:

    Sa't jo sjen kinne, is it gebrûk fan oanpaste funksjes net te oars fan gewoane Excelfunksjes.

    By it dwaan fan dit, tink derom dat in troch de brûker definieare funksje allinich in wearde weromjaan kin, mar gjin oare aksjes útfiere kin. Lês mear oer de beheiningen fan brûkers-definieare funksjes.

    UDF brûke yn VBA-prosedueres en funksjes

    UDF's kinne ek brûkt wurde yn VBA-makro's. Hjirûnder kinne jo de makrokoade sjen dy't de maksimale wearde siket yn it berik fan 10 oant 50 yn 'e kolom mei de aktive sel.

    Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Cells(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cells(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells,)1 =0,50,) Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End Sub

    De makrokoade befettet de oanpaste funksje

    GetMaxBetween(.Cells, 10, 50)

    It fynt de maksimale wearde yn 'e aktive kolom. Dizze wearde sil dan markearre wurde. Jo kinne it resultaat fan 'e makro sjen yn' e skermôfbylding hjirûnder.

    In oanpaste funksje kin ek brûkt wurde binnen in oare oanpaste funksje. Earder yn ús blog hawwe wy sjoen nei it probleem fan it konvertearjen fan in nûmer nei tekst mei de oanpaste funksje mei de namme SpellNumber .

    Mei har help kinne wy ​​de maksimale wearde fan it berik krije en fuortendaliks skriuw it op as tekst.

    Om dit te dwaan sille wy in nije oanpaste funksje meitsje wêryn wy de funksjes brûke GetMaxBetween en SpellNumber dy't ús al bekend binne.

    Funksje SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween, MaxNum) End Funksje

    Sa't jo sjen kinne, is de funksje GetMaxBetween in argumint foar in oare oanpaste funksje, SpellNumber . It definiearret de maksimale wearde, lykas wy hawwe dien in protte kearen foar. Dit nûmer wurdt dan omset yn tekst.

    Yn de skermôfdruk hjirboppe kinne jo sjen hoe't de funksje SpellGetMaxBetween it maksimum oantal fynt tusken 100 en 500 en set it dan om yn tekst.

    UDF belje út oare wurkboeken

    As jo ​​UDF yn jo wurkboek makke hawwe, betsjut dit spitigernôch net dat jo hielendal gjin problemen krije.

    Yn myn ûnderfining meitsje de measte brûkers ier of letter har persoanlike samling makro's en oanpaste funksjes om yndividuele prosessen en berekkeningen te automatisearjen. En hjir ûntstiet it probleem - de koade fan brûkers definieare funksjes yn Visual Basic moat earne opslein wurde om letter yn wurk te brûken.

    Om de oanpaste funksje ta te passen, moat it wurkboek wêr't jo it bewarre hawwe iepen wêze yn jo Excel. As it net is, krije jo de #NAME! flater as jo besykje it te brûken. Dizze flater jout oan dat Excel de namme net wit fan de funksje dy't jo brûke wolle yn 'e formule.

    Litte wy ris nei de manieren sjen yndy't jo de oanpaste funksjes brûke kinne dy't jo oanmeitsje.

    Metoade 1. Foegje de namme fan it wurkboek ta oan de funksje

    Jo kinne de namme fan it wurkboek dêr't it yn stiet foar de namme fan de funksje. As jo ​​bygelyks in oanpaste funksje GetMaxBetween() bewarre hawwe yn in wurkboek mei de namme My_Functions.xlsm , dan moatte jo de folgjende formule ynfiere:

    = My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)

    Metoade 2. Bewarje alle UDF's yn ien gewoane triem

    Bewarje alle oanpaste funksjes yn ien spesjaal wurkboek (bygelyks My_Functions.xlsm ) en kopiearje de winske funksje derfan yn it hjoeddeiske wurkboek, as it nedich is.

    Elke kear as jo in nije oanpaste funksje meitsje, moatte jo de koade duplisearje yn it wurkboek wêryn jo it brûke sille. Mei dizze metoade kinne ferskate ûngemak ûntstean:

    • As der in protte wurkbestannen binne, en de funksje is oeral nedich, dan sil de koade nei elk boek kopiearre wurde moatte.
    • Tink derom om it wurkboek te bewarjen yn in makro-ynskeakele opmaak (.xlsm of .xlsb).
    • By it iepenjen fan sa'n bestân sil beskerming tsjin makro's elke kear in warskôging werjaan, dy't befêstige wurde moat. In protte brûkers wurde bang as se in giele bar warskôging sjogge dy't har freget om makro's yn te skeakeljen. Om foar te kommen dat jo dit berjocht sjen, moatte jo Excel-beskerming folslein útskeakelje. Dit kin lykwols net altyd korrekt en feilich wêze.

    Ik tink dat jo it mei my iens sille wêze dat altyd in iepening fan inbestân en it kopiearjen fan de koade fan brûker-definieare funksjes derút of it skriuwen fan de namme fan dit bestân yn in formule is net de bêste oplossing. sa kamen wy op de tredde manier.

    Metoade 3. Meitsje in Excel-tafoegingsbestân

    Ik tink dat de bêste manier is om faak brûkte oanpaste funksjes op te slaan yn in Excel-tafoegingstriem . Foardielen fan it brûken fan de tafoeging:

    • Jo moatte de tafoeging mar ien kear ferbine mei Excel. Dêrnei kinne jo de prosedueres en funksjes brûke yn elk bestân op dizze kompjûter. Jo hoege jo wurkboeken net te bewarjen yn .xlsm- en .xlsb-formaten, om't de boarnekoade net yn har opslein wurdt, mar yn it add-in-bestân.
    • Jo sille gjin hinder mear hawwe fan beskerming fan makro's as tafoegings ferwize altyd nei fertroude boarnen.
    • In tafoeging is in apart bestân. It is maklik om it fan kompjûter nei komputer oer te setten, om it te dielen mei kollega's.

    Wy prate letter mear oer it meitsjen en brûken fan in add-in.

    Tafoeging brûke- ins om oanpaste funksjes op te slaan

    Hoe meitsje ik myn eigen add-in? Litte wy dit proses stap foar stap trochgean.

    Stap 1. Meitsje it tafoegingsbestân

    Iepenje Microsoft Excel, meitsje in nij wurkboek en bewarje it ûnder elke passende namme (bygelyks, My_Functions) yn tafoegingsformaat. Om dit te dwaan, brûk it menu Triem - Bewarje as of de F12-kaai. Soargje derfoar dat jo it bestânstype oantsjutte Excel-tafoeging :

    Jo tafoeging sil de tafoeging .xlam hawwe.

    Punt. Tink derom datstandert bewarret Excel tafoegings yn de map C:\Users\[Jo_Namme]\AppData\Roaming\Microsoft\AddIns . Ik riede oan dat jo akseptearje de standert lokaasje. As jo ​​​​wolle, kinne jo elke oare map opjaan. Mar dan, as jo de add-in ferbine, moatte jo de nije lokaasje manuell fine en opjaan. As jo ​​​​it bewarje yn 'e standertmap, hoege jo de add-on net op jo kompjûter te sykjen. Excel sil it automatysk listje.

    Stap 2. Ferbine it tafoegingsbestân

    No moat de tafoeging dy't wy makke hawwe ferbûn wêze mei Excel. Dan sil it automatysk laden wurde as it programma begjint. Om dit te dwaan, brûk it menu Triem - Opsjes - Add-Ins . Soargje derfoar dat Excel-tafoegings selektearre is yn it fjild Beheare . Klikje op de Gean knop ûnderoan it finster. Markearje yn it finster dat ferskynt ús tafoeging My_Functions. As jo ​​it net yn 'e list sjogge, klik dan op de knop Blêdzje en blêdzje nei de lokaasje fan jo tafoegingsbestân.

    As jo brûke in tafoeging om oanpaste funksjes op te slaan, is d'r ien ienfâldige regel om te folgjen. As jo ​​​​it wurkboek oerdrage oan in oare persoan, wês dan wis dat jo ek in kopy fan 'e add-in oerdrage dy't de funksjonaliteit befettet dy't jo wolle. Se moatte it op deselde wize ferbine as jo no dien hawwe.

    Stap 3. Foegje oanpaste funksjes en makro's ta oan de tafoeging

    Us tafoeging is ferbûn mei Excel, mar it docht gjin funksjonaliteit hawwenoch. Om nije UDF's ta te foegjen, iepenje de Visual Basic Editor troch op Alt + F11 te drukken. Dan kinne jo nije modules tafoegje mei VBA-koade lykas beskreaun yn myn Create UDFs tutorial.

    Selektearje jo add-in triem ( My_Finctions.xlam ) yn it finster fan VBAProject. Brûk it menu Insert - Module om in oanpaste module ta te foegjen. Jo moatte dêr oanpaste funksjes yn skriuwe.

    Jo kinne de koade fan in troch de brûker definieare funksje mei de hân ynfiere of ergens kopiearje.

    Dat is alles. No hawwe jo jo eigen add-in oanmakke, tafoege oan Excel en jo kinne de UDF deryn brûke. As jo ​​mear UDF's brûke wolle, skriuw dan gewoan de koade yn de add-in module yn de VBA bewurker en bewarje it.

    Dat is it foar hjoed. Wy hawwe leard hoe't jo troch brûkers definieare funksjes kinne brûke yn jo wurkboek. Wy hoopje echt dat jo dizze rjochtlinen nuttich fine. As jo ​​​​fragen hawwe, skriuw dan yn 'e opmerkings by dit artikel.

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.