Excelin mukautettujen toimintojen edut ja haitat

  • Jaa Tämä
Michael Brown

Jatkamme oppimissarjaa, joka käsittelee käyttäjän määrittelemiä funktioita. Edellisissä artikkeleissamme tutustuimme mukautettuihin funktioihin ja opimme, miten niitä luodaan ja käytetään. Tässä oppaassa tarkastelemme näiden funktioiden käytön erityispiirteitä ja näemme UDF:ien ja VBA-makrojen väliset erot.

Tässä opetusohjelmassa opimme seuraavat asiat:

    Toivomme, että tämä artikkeli lisää tietämystäsi UDF:stä ja auttaa sinua käyttämään niitä entistä tehokkaammin Excel-työkirjoissasi.

    Onko UDF ja makro sama asia?

    Sekä käyttäjän määrittelemät funktiot että VBA-makrot luodaan VBA-editorilla. Mitä eroa niillä on ja mitä niistä tulisi suosia?

    Tärkein ero on se, että funktio suorittaa laskennan ja makro suorittaa jonkin toiminnon. Käyttäjän määrittelemä funktio, kuten tavallinen Excel-funktio, on kirjoitettava soluun. Sen suorittamisen tuloksena solu palauttaa jonkin arvon. Samalla on mahdotonta muuttaa muiden solujen arvoja sekä joitakin nykyisen solun ominaisuuksia (erityisesti,muotoilu). Voit kuitenkin käyttää mukautettua funktiota ehdollisen muotoilun kaavoissa.

    UDF ja VBA-makro toimivat eri tavoin. Kun esimerkiksi luot UDF:n Visual Basic -editorissa, aloitat lausekkeella Toiminto ja päättyy Lopeta toiminto Kun tallennat makron, aloitat lausekkeella Sub ja päättyy End Sub.

    Kaikkia Visual Basicin operaattoreita ei voi käyttää UDF:ien luomiseen, joten makro on monipuolisempi ratkaisu.

    Makro ei vaadi käyttäjältä mitään argumentteja (eikä se voi hyväksyä mitään argumentteja), toisin kuin käyttäjän määrittelemä funktio.

    Kyse on siitä, että jotkut makrojen komennot voivat käyttää solujen osoitteita tai muotoiluelementtejä (esimerkiksi väriä). Jos siirrät soluja, lisäät tai poistat rivejä ja sarakkeita tai muutat solujen muotoa, voit helposti "rikkoa" makrojasi. Tämä on erityisen mahdollista, jos jaat tiedostosi kollegoiden kanssa, jotka eivät tiedä, miten makrojesi toimivat.

    Sinulla on esimerkiksi tiedosto, jossa on täydellisesti toimiva makro. Tämä kaava laskee solujen A1-A4 prosenttiosuuden. Makro muuttaa näiden solujen värin keltaiseksi. Aktiiviseen soluun asetetaan prosenttimuoto.

    Jos sinä tai joku muu päättää lisätä uuden rivin, makro jatkaa arvon etsimistä A4-solusta (UDF:n parametri 4,1), epäonnistuu ja palauttaa virheilmoituksen:

    Tässä tapauksessa virhe johtui jakamisesta nollalla (uudella lisätyllä rivillä ei ole arvoa). Jos makro suorittaa vaikkapa yhteenlaskun, saat yksinkertaisesti väärän tuloksen, mutta et tiedä siitä mitään.

    Toisin kuin makrot, käyttäjän määrittelemät funktiot eivät voi aiheuttaa tällaista epämiellyttävää tilannetta.

    Alla näet samojen laskutoimitusten suorituskyvyn UDF:n avulla. Tässä voit määrittää syöttösolut missä tahansa työarkissa, etkä joudu kohtaamaan mitään odottamattomia ongelmia muuttaessasi sitä.

    Kirjoitin seuraavan kaavan C3:ssa:

    =UDF_vs_Macro(A1,A4)

    Sitten lisäsin tyhjän rivin, ja kaava muuttui, kuten yllä olevassa kuvakaappauksessa näkyy.

    Nyt voimme siirtää syöttösolun tai funktion sisältävän solun minne tahansa. Tulos on aina oikea.

    UDF:ien käytön lisäetuna on, että ne päivittyvät automaattisesti, kun syöttösolun arvo muuttuu. Makroja käytettäessä on aina varmistettava, että kaikki tiedot ovat ajan tasalla.

    Tämän esimerkin huomioon ottaen käyttäisin mieluummin UDF-ohjelmia aina kun mahdollista ja makroja vain muihin kuin laskentatoimiin.

    UDF:n käytön rajoitukset ja haitat

    Olen jo maininnut UDF:n edut edellä. Lyhyesti sanottuna se voi suorittaa laskutoimituksia, jotka eivät ole mahdollisia tavallisilla Excel-funktioilla. Lisäksi se voi tallentaa ja käyttää pitkiä ja monimutkaisia kaavoja ja muuttaa ne yhdeksi ainoaksi funktioksi. Eikä sinun tarvitse kirjoittaa monimutkaisia kaavoja uudestaan ja uudestaan.

    Puhutaan nyt tarkemmin UDF:n puutteista:

    • UDF:ien luominen edellyttää VBA:n käyttöä. Sitä ei voi kiertää. Tämä tarkoittaa, että käyttäjä ei voi tallentaa UDF:ää samalla tavalla kuin Excel-makroa. Sinun on luotava UDF itse. Voit kuitenkin kopioida ja liittää osia aiemmin tallennetusta makrokoodista funktioosi. Sinun on vain oltava tietoinen mukautettujen funktioiden rajoituksista.
    • Toinen UDF:n haittapuoli on se, että kuten mikä tahansa Excel-funktio, se voi palauttaa soluun vain yhden arvon tai arvomäärän. Se suorittaa vain laskutoimituksia, ei muuta.
    • Jos haluat jakaa työkirjasi kollegojesi kanssa, muista tallentaa UDF:t samaan tiedostoon. Muuten mukautetut funktiot eivät toimi heidän kanssaan.
    • VBA-editorilla luodut mukautetut funktiot ovat hitaampia kuin tavalliset funktiot. Tämä näkyy erityisesti suurissa taulukoissa. Valitettavasti VBA on toistaiseksi hyvin hidas ohjelmointikieli. Jos sinulla on paljon tietoja, yritä siksi käyttää tavallisia funktioita aina kun mahdollista tai luoda UDF:iä LAMBDA-funktiolla.

    Mukautetun toiminnon rajoitukset:

    • UDF-ohjelmat on suunniteltu suorittamaan laskutoimituksia ja palauttamaan arvo. Niitä ei voi käyttää makrojen sijasta.
    • Ne eivät voi muuttaa minkään muun solun sisältöä (vain aktiivisen solun).
    • Toimintojen nimien on noudatettava tiettyjä sääntöjä. Et voi esimerkiksi käyttää nimeä, joka vastaa Excel-funktion omaa nimeä tai solun osoitetta, kuten AB123.
    • Mukautetun funktiosi nimessä ei voi olla välilyöntejä, mutta se voi sisältää alaviivamerkin. Suositeltava tapa on kuitenkin käyttää isoja kirjaimia jokaisen uuden sanan alussa (esimerkiksi GetMaxBetween).
    • UDF ei voi kopioida ja liittää soluja muihin työarkin alueisiin.
    • Ne eivät voi muuttaa aktiivista työarkkia.
    • UDF-ohjelmat eivät voi muuttaa aktiivisen solun muotoilua. Jos haluat muuttaa solun muotoilua eri arvojen näyttämisen yhteydessä, sinun on käytettävä ehdollista muotoilua.
    • He eivät voi avata muita kirjoja.
    • Niitä ei voi käyttää makrojen suorittamiseen käyttäen Application.OnTime.
    • Käyttäjän määrittelemää toimintoa ei voi luoda makrotallentimen avulla.
    • Toiminnot eivät näy Kehittäjä> Makrot vuoropuhelu.
    • Toiminnot näkyvät valintaikkunassa ( Insert> Toiminto ) ja funktioiden luettelossa vain, jos ne on ilmoitettu muodossa Julkinen (tämä on oletusarvo, ellei toisin mainita).
    • Kaikki funktiot, jotka on ilmoitettu muodossa Yksityinen ei näy ominaisuusluettelossa.

    Melko hidas toiminta sekä tietyt käyttörajoitukset saattavat saada sinut miettimään: "Mitä hyötyä näistä mukautetuista toiminnoista on?"."

    Niistä voi olla hyötyä, ja niin onkin, jos otamme huomioon niille asetetut rajoitukset. Jos opit luomaan ja käyttämään UDF:iä oikein, voit kirjoittaa oman funktiokirjastosi. Tämä laajentaa huomattavasti kykyjäsi työskennellä tietojen kanssa Excelissä.

    Minulle mukautetut funktiot säästävät paljon aikaa. Entä sinä? Oletko jo kokeillut oman UDF:n luomista? Piditkö siitä enemmän kuin Excelin perusfunktioista? Keskustellaan siitä kommenteissa :)

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.