Sisällysluettelo
Tänään jatkamme Excelin mukautettujen funktioiden tutkimista. Koska tiedät jo, miten UDF-funktioita luodaan (ja toivottavasti olet myös kokeillut niiden soveltamista Excelissäsi), mennään nyt hieman syvemmälle ja opitaan, miten Excelissä käytetään ja tallennetaan käyttäjän määrittelemiä funktioita.
Lisäksi näytämme, miten voit helposti tallentaa funktiot Excel-lisäosatiedostoon ja käyttää niitä myöhemmin muutamalla napsautuksella.
Puhumme siis seuraavasta aiheesta:
Eri tapoja käyttää UDF:ää Excelissä
UDF:ien käyttäminen laskentataulukoissa
Kun olet varmistanut, että UDF:t toimivat oikein, voit käyttää niitä Excel-kaavoissa tai VBA-koodissa.
Voit käyttää mukautettuja funktioita Excel-työkirjassa samalla tavalla kuin tavallisia funktioita. Kirjoita esimerkiksi soluun alla oleva kaava:
= GetMaxBetween(A1:A6,10,50)
UDF:ää voidaan käyttää yhdessä tavallisten funktioiden kanssa. Voit esimerkiksi lisätä tekstiä laskettuun enimmäisarvoon:
= CONCATENATE("Suurin arvo 10 ja 50 välillä on ", GetMaxBetween(A1: A6,10,50))
Voit nähdä tuloksen alla olevasta kuvakaappauksesta:
Voit löytää luvun, joka on sekä suurin että on välillä 10-50.
Tarkistetaan toinen kaava:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
Mukautettu toiminto GetMaxBetween tarkistaa alueen B2:B9 ja etsii suurimman luvun väliltä 10 ja 50. Sen jälkeen saadaan INDEX + MATCH -toiminnon avulla tuotteen nimi, joka vastaa tätä suurinta arvoa:
Kuten näet, mukautettujen funktioiden käyttö ei poikkea liikaa tavallisista Excel-funktioista.
Kun teet näin, muista, että käyttäjän määrittelemä funktio voi vain palauttaa arvon, mutta ei voi suorittaa muita toimintoja. Lue lisää käyttäjän määrittelemien funktioiden rajoituksista.
UDF:n käyttäminen VBA-menettelyissä ja -funktioissa
UDF:iä voidaan käyttää myös VBA-makroissa. Alla näet makrokoodin, joka etsii aktiivisen solun sisältävästä sarakkeesta suurimman arvon välillä 10-50.
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, 10, 50) i = Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubMakrokoodi sisältää mukautetun funktion
GetMaxBetween(.Cells, 10, 50)
Se etsii aktiivisen sarakkeen suurimman arvon. Tämä arvo korostetaan. Makron tulos näkyy alla olevassa kuvakaappauksessa.
Mukautettua funktiota voidaan käyttää myös toisen mukautetun funktion sisällä. Aikaisemmin blogissamme tarkastelimme ongelmaa, joka liittyy numeron muuntamiseen tekstiksi käyttämällä mukautettua funktiota nimeltä SpellNumber .
Sen avulla voimme hakea alueen maksimiarvon ja kirjoittaa sen välittömästi tekstinä.
Tätä varten luomme uuden mukautetun funktion, jossa käytämme funktioita GetMaxBetween ja SpellNumber jotka ovat meille jo tuttuja.
Function SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End FunctionKuten näette, GetMaxBetween funktio on toisen mukautetun funktion argumentti, SpellNumber Se määrittää enimmäisarvon, kuten olemme tehneet monta kertaa aiemmin. Tämä luku muunnetaan sitten tekstiksi.
Yllä olevassa kuvakaappauksessa näet, miten SpellGetMaxBetween funktio etsii maksimiluvun 100 ja 500 väliltä ja muuntaa sen sitten tekstiksi.
UDF:n kutsuminen muista työkirjoista
Jos olet luonut UDF:n työkirjaasi, se ei valitettavasti tarkoita, että et kohtaisi mitään ongelmia.
Kokemukseni mukaan useimmat käyttäjät luovat ennemmin tai myöhemmin henkilökohtaisen kokoelman makroja ja mukautettuja funktioita automatisoidakseen yksittäisiä prosesseja ja laskutoimituksia. Tässä kohtaa syntyykin ongelma - Visual Basicissa olevien käyttäjän määrittelemien funktioiden koodi on tallennettava jonnekin, jotta sitä voidaan käyttää myöhemmin työssä.
Jotta voit käyttää mukautettua funktiota, työkirjan, johon olet tallentanut sen, on oltava avoinna Excelissä. Jos se ei ole avoinna, saat #NAME! -virheen, kun yrität käyttää sitä. Tämä virhe osoittaa, että Excel ei tiedä sen funktion nimeä, jota haluat käyttää kaavassa.
Katsotaanpa, miten voit käyttää luomasi mukautettuja funktioita.
Menetelmä 1. Lisää työkirjan nimi funktioon.
Voit määrittää sen työkirjan nimen, jossa funktio sijaitsee, ennen funktion nimeä. Jos esimerkiksi tallennat mukautetun funktion osoitteeseen GetMaxBetween() työkirjassa nimeltä My_Functions.xlsm , sinun on annettava seuraava kaava:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Menetelmä 2. Tallenna kaikki UDF-tiedostot yhteen yhteiseen tiedostoon.
Tallenna kaikki mukautetut toiminnot yhteen erityiseen työkirjaan (esim, My_Functions.xlsm ) ja kopioi tarvittaessa haluttu toiminto siitä nykyiseen työkirjaan.
Aina kun luot uuden mukautetun funktion, sinun on kopioitava sen koodi työkirjaan, jossa käytät sitä. Tästä menetelmästä voi aiheutua useita haittoja:
- Jos työtiedostoja on paljon ja funktiota tarvitaan kaikkialla, koodi on kopioitava jokaiseen kirjaan.
- Muista tallentaa työkirja makrotoiminnot mahdollistavassa muodossa (.xlsm tai .xlsb).
- Tällaista tiedostoa avattaessa suojaus makroja vastaan näyttää joka kerta varoituksen, joka on vahvistettava. Monet käyttäjät säikähtävät, kun he näkevät keltaisen palkin varoituksen, jossa pyydetään ottamaan makrot käyttöön. Jotta tätä viestiä ei nähtäisi, on Excel-suojaus poistettava kokonaan käytöstä. Tämä ei kuitenkaan välttämättä ole aina oikein ja turvallista.
Uskon, että olet kanssani samaa mieltä siitä, että koko ajan tiedoston avaaminen ja käyttäjän määrittelemien funktioiden koodin kopioiminen siitä tai tiedoston nimen kirjoittaminen kaavaan ei ole paras ratkaisu. näin päädyimme kolmanteen tapaan.
Menetelmä 3. Luo Excel-lisäosatiedosto
Mielestäni paras tapa on tallentaa usein käytetyt mukautetut funktiot Excel-lisäosatiedostoon. Lisäosan käytön edut:
- Sinun tarvitsee liittää lisäosa Exceliin vain kerran. Sen jälkeen voit käyttää sen proseduureja ja toimintoja missä tahansa tiedostossa tällä tietokoneella. Sinun ei tarvitse tallentaa työkirjoja .xlsm- ja .xlsb-muodossa, koska lähdekoodi ei tallennu niihin vaan lisäosan tiedostoon.
- Makrojen suojaus ei enää häiritse sinua, sillä lisäosat viittaavat aina luotettaviin lähteisiin.
- Lisäosa on erillinen tiedosto, joka on helppo siirtää tietokoneelta toiselle ja jakaa kollegoiden kanssa.
Puhumme lisää lisäosan luomisesta ja käytöstä myöhemmin.
Lisäosien käyttäminen mukautettujen toimintojen tallentamiseen
Miten luon oman lisäosan? Käydään prosessi läpi vaihe vaiheelta.
Vaihe 1. Luo lisäosatiedosto
Avaa Microsoft Excel, luo uusi työkirja ja tallenna se sopivalla nimellä (esimerkiksi My_Functions) lisäosamuodossa. Voit tehdä tämän käyttämällä valikkoa Tiedosto - Tallenna nimellä tai F12-näppäimellä. Muista määrittää tiedostotyyppi. Excel-lisäosa :
Lisäosan tunnukseksi tulee .xlam.
Vihje. Huomaa, että Excel tallentaa lisäosat oletusarvoisesti tiedostoon C:\\Users\[Sinun_Nimesi]\AppData\Roaming\Microsoft\AddIns kansioon. Suosittelen, että hyväksyt oletussijainnin. Voit halutessasi määrittää minkä tahansa muun kansion. Silloin sinun on kuitenkin liitettäessäsi lisäosaa etsittävä ja määritettävä sen uusi sijainti manuaalisesti. Jos tallennat sen oletuskansioon, sinun ei tarvitse etsiä lisäosaa tietokoneeltasi. Excel listaa sen automaattisesti.
Vaihe 2. Yhdistä lisäosatiedosto
Nyt luomaamme lisäosaa on yhdistettävä Exceliin. Silloin se latautuu automaattisesti, kun ohjelma käynnistyy. Voit tehdä tämän käyttämällä valikkoa Tiedosto - Asetukset - Lisäosat . Varmista, että Excel-lisäohjelmat on valittu Hallitse kenttä. Napsauta Mene painiketta ikkunan alaosassa. Merkitse avautuvassa ikkunassa lisäosamme My_Functions. Jos et näe sitä luettelossa, napsauta painiketta Selaa painiketta ja selaa lisäosatiedoston sijaintiin.
Jos käytät lisäosaa mukautettujen toimintojen tallentamiseen, on yksi yksinkertainen sääntö, jota on noudatettava. Jos siirrät työkirjan toiselle henkilölle, muista siirtää myös kopio lisäosasta, joka sisältää haluamasi toiminnon. Heidän on liitettävä se samalla tavalla kuin nyt.
Vaihe 3. Lisää mukautettuja toimintoja ja makroja lisäosaan.
Lisäosamme on liitetty Exceliin, mutta sillä ei ole vielä mitään toimintoja. Jos haluat lisätä siihen uusia UDF:iä, avaa Visual Basic Editor painamalla Alt + F11 . Sitten voit lisätä uusia moduuleja VBA-koodilla, kuten kuvattu ohjeessa Luo UDF:iä.
Valitse lisäosatiedosto ( My_Finctions.xlam ) VBAProject-ikkunassa. Käytä komentoa Insert - Moduuli valikon avulla voit lisätä mukautetun moduulin. Sinun on kirjoitettava siihen mukautettuja funktioita.
Voit joko kirjoittaa käyttäjän määrittelemän funktion koodin manuaalisesti tai kopioida sen jostain.
Siinä kaikki. Nyt olet luonut oman lisäosan, lisännyt sen Exceliin ja voit käyttää siinä UDF:ää. Jos haluat käyttää useampia UDF:iä, kirjoita koodi lisäosan moduuliin VBA-editorissa ja tallenna se.
Siinä kaikki tältä päivältä. Olemme oppineet, miten voit käyttää käyttäjän määrittelemiä funktioita työkirjassasi. Toivomme todella, että näistä ohjeista on sinulle apua. Jos sinulla on kysyttävää, kirjoita tämän artikkelin kommentteihin.