Talaan ng nilalaman
Ngayon ay magpapatuloy kami sa paggalugad ng mga custom na function ng Excel. Dahil alam mo na kung paano gumawa ng mga UDF (at, umaasa ako, nasubukan mo na ring ilapat ang mga ito sa iyong Excel), humukay tayo ng kaunti at matutunan kung paano gumamit at mag-imbak ng mga function na tinukoy ng gumagamit sa Excel.
Bukod dito, ipapakita namin sa iyo kung paano madaling i-save ang iyong mga function sa isang Excel add-in file upang magamit ang mga ito sa ibang pagkakataon sa ilang pag-click.
Kaya, narito ang pag-uusapan natin:
Iba't ibang paraan ng paggamit ng UDF sa Excel
Paggamit ng mga UDF sa worksheet
Kapag na-verify mo na na gumagana nang tama ang iyong mga UDF, magagamit mo ang mga ito sa Excel mga formula o sa VBA code.
Maaari kang maglapat ng mga custom na function sa isang Excel workbook sa parehong paraan tulad ng paggamit mo ng mga regular na function. Halimbawa, isulat lang sa isang cell ang formula sa ibaba:
= GetMaxBetween(A1:A6,10,50)
Maaaring gamitin ang UDF kasama ng mga regular na function. Halimbawa, magdagdag ng text sa kinakalkula na maximum na halaga:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
Makikita mo ang resulta sa screenshot sa ibaba:
Ikaw mahahanap ang numero na parehong maximum at nasa hanay mula 10 hanggang 50.
Suriin natin ang isa pang formula:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
Ang custom na function GetMaxBetween sinusuri ang hanay na B2:B9 at hinahanap ang maximum na bilang sa pagitan ng 10 at 50. Pagkatapos, gamit ang INDEX + MATCH, makuha namin ang pangalan ng produkto na tumutugma sa maximum na halagang ito:
Gaya ng nakikita mo, ang paggamit ng mga custom na function ay hindi masyadong naiiba sa regular na Excelmga function.
Kapag ginagawa ito, tandaan na ang isang function na tinukoy ng user ay maaari lamang magbalik ng isang halaga, ngunit hindi maaaring magsagawa ng anumang iba pang mga aksyon. Magbasa nang higit pa tungkol sa mga paghihigpit ng mga function na tinukoy ng user.
Paggamit ng UDF sa mga pamamaraan at function ng VBA
Maaari ding gamitin ang mga UDF sa mga VBA macro. Sa ibaba makikita mo ang macro code na naghahanap ng maximum na halaga sa hanay mula 10 hanggang 50 sa column na naglalaman ng aktibong cell.
Sub MacroWithUDF() Dim Rng Bilang Saklaw, maxcase, i Hangga't Sa ActiveSheet.Range( Mga Cell(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Mga Cell(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells) Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubAng macro code ay naglalaman ng custom na function
GetMaxBetween(.Cells, 10, 50)
It hinahanap ang maximum na halaga sa aktibong column. Ang halagang ito ay iha-highlight pagkatapos. Makikita mo ang resulta ng macro sa screenshot sa ibaba.
Maaari ding gumamit ng custom na function sa loob ng isa pang custom na function. Mas maaga sa aming blog, tiningnan namin ang problema sa pag-convert ng numero sa text gamit ang custom na function na pinangalanang SpellNumber .
Sa tulong nito, makukuha namin ang maximum na halaga mula sa range at kaagad isulat ito bilang text.
Upang gawin ito, gagawa kami ng bagong custom na function kung saan gagamitin namin ang mga function GetMaxBetween at SpellNumber na pamilyar na sa amin.
Function SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween, MinNum) End FunctionTulad ng nakikita mo, ang function na GetMaxBetween ay isang argumento sa isa pang custom na function, SpellNumber . Tinutukoy nito ang pinakamataas na halaga, tulad ng ginawa namin nang maraming beses bago. Ang numerong ito ay iko-convert sa text.
Sa screenshot sa itaas, makikita mo kung paano hinahanap ng function na SpellGetMaxBetween ang maximum na numero sa pagitan ng 100 at 500 at pagkatapos ay iko-convert ito sa text.
Pagtawag sa UDF mula sa iba pang workbook
Kung nakagawa ka ng UDF sa iyong workbook, ito, sa kasamaang-palad, ay hindi nangangahulugan na hindi ka na haharap sa anumang problema.
Sa aking karanasan, karamihan sa mga user sa madaling panahon ay gumagawa ng kanilang personal na koleksyon ng mga macro at custom na function upang i-automate ang mga indibidwal na proseso at kalkulasyon. At dito lumitaw ang problema - ang code ng mga function na tinukoy ng user sa Visual Basic ay kailangang maimbak sa isang lugar upang magamit sa ibang pagkakataon sa trabaho.
Upang ilapat ang custom na function, dapat na bukas ang workbook kung saan mo ito na-save sa iyong Excel. Kung hindi, makukuha mo ang #NAME! error kapag sinusubukang gamitin ito. Isinasaad ng error na ito na hindi alam ng Excel ang pangalan ng function na gusto mong gamitin sa formula.
Tingnan natin ang mga paraan sana maaari mong gamitin ang mga custom na function na iyong nilikha.
Paraan 1. Idagdag ang pangalan ng workbook sa function
Maaari mong tukuyin ang pangalan ng workbook kung saan ito matatagpuan bago ang pangalan ng function. Halimbawa, kung nag-save ka ng custom na function GetMaxBetween() sa isang workbook na pinangalanang My_Functions.xlsm , dapat mong ilagay ang sumusunod na formula:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Paraan 2. I-store ang lahat ng UDF sa isang karaniwang file
I-save ang lahat ng custom na function sa isang espesyal na workbook (halimbawa, My_Functions.xlsm ) at kopyahin ang gustong function mula dito papunta sa ang kasalukuyang workbook, kung kinakailangan.
Sa tuwing gagawa ka ng bagong custom na function, kailangan mong i-duplicate ang code nito sa workbook kung saan mo ito gagamitin. Sa pamamaraang ito, maaaring magkaroon ng ilang abala:
- Kung maraming gumaganang file, at kailangan ang function sa lahat ng dako, kakailanganing kopyahin ang code sa bawat aklat.
- Tandaang i-save ang workbook sa isang macro-enabled na format (.xlsm o .xlsb).
- Kapag binubuksan ang naturang file, ang proteksyon laban sa mga macro ay magpapakita ng babala sa bawat pagkakataon, na dapat kumpirmahin. Maraming user ang natatakot kapag nakakita sila ng babala ng dilaw na bar na humihiling sa kanila na paganahin ang mga macro. Upang maiwasang makita ang mensaheng ito, kailangan mong ganap na huwag paganahin ang proteksyon ng Excel. Gayunpaman, maaaring hindi ito palaging tama at ligtas.
Sa tingin ko ay sasang-ayon ka sa akin na sa lahat ng oras ay magbubukas ng isangfile at pagkopya ng code ng mga function na tinukoy ng gumagamit mula dito o pagsulat ng pangalan ng file na ito sa isang formula ay hindi ang pinakamahusay na solusyon. kaya, dumating kami sa ikatlong paraan.
Paraan 3. Gumawa ng Excel add-in file
Sa tingin ko ang pinakamahusay na paraan ay ang mag-imbak ng mga madalas na ginagamit na custom na function sa isang Excel add-in file . Mga kalamangan ng paggamit ng add-in:
- Kailangan mong ikonekta ang add-in sa Excel nang isang beses lang. Pagkatapos nito, maaari mong gamitin ang mga pamamaraan at function nito sa anumang file sa computer na ito. Hindi mo kailangang i-save ang iyong mga workbook sa .xlsm at .xlsb na mga format dahil ang source code ay hindi maiimbak sa kanila ngunit sa add-in na file.
- Hindi ka na maaabala ng proteksyon ng macro bilang Ang mga add-in ay palaging tumutukoy sa mga pinagkakatiwalaang mapagkukunan.
- Ang isang add-in ay isang hiwalay na file. Madaling ilipat ito mula sa computer patungo sa computer, upang ibahagi ito sa mga kasamahan.
Mag-uusap pa tayo tungkol sa paggawa at paggamit ng add-in mamaya.
Paggamit ng add- ins to store custom functions
Paano ako gagawa ng sarili kong add-in? Hakbang 1. Lumikha ng add-in file
Buksan ang Microsoft Excel, lumikha ng bagong workbook, at i-save ito sa ilalim ng anumang angkop na pangalan (halimbawa, My_Functions) sa add-in na format. Upang gawin ito, gamitin ang menu File - Save As o ang F12 key. Tiyaking tukuyin ang uri ng file Excel Add-in :
Ang iyong add-in ay magkakaroon ng extension na .xlam.
Tip. Mangyaring tandaan nabilang default, ang Excel ay nag-iimbak ng mga add-in sa C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns na folder. Inirerekomenda kong tanggapin mo ang default na lokasyon. Kung gusto mo, maaari mong tukuyin ang anumang iba pang folder. Ngunit pagkatapos, kapag ikinonekta ang add-in, kakailanganin mong hanapin at tukuyin ang bagong lokasyon nito nang manu-mano. Kung ise-save mo ito sa default na folder, hindi mo na kailangang hanapin ang add-on sa iyong computer. Awtomatikong ililista ito ng Excel.
Hakbang 2. Ikonekta ang add-in file
Ngayon ang add-in na ginawa namin ay kailangang konektado sa Excel. Pagkatapos ay awtomatiko itong mai-load kapag nagsimula ang programa. Upang gawin ito, gamitin ang menu File - Options - Add-Ins . Tiyaking napili ang Excel Add-Ins sa field na Pamahalaan . Mag-click sa button na Go sa ibaba ng window. Sa lalabas na window, markahan ang aming add-in na My_Functions. Kung hindi mo ito nakikita sa listahan, i-click ang button na Browse at mag-browse sa lokasyon ng iyong add-in file.
Kung ikaw ay gumagamit ng add-in upang mag-imbak ng mga custom na function, mayroong isang simpleng panuntunan na dapat sundin. Kung ililipat mo ang workbook sa ibang tao, siguraduhing maglipat din ng kopya ng add-in na naglalaman ng functionality na gusto mo. Dapat nilang ikonekta ito sa parehong paraan tulad ng ginawa mo ngayon.
Hakbang 3. Magdagdag ng mga custom na function at macro sa add-in
Ang aming add-in ay konektado sa Excel, ngunit ito ay walang anumang pag-andarpa. Upang magdagdag ng mga bagong UDF dito, buksan ang Visual Basic Editor sa pamamagitan ng pagpindot sa Alt + F11 . Pagkatapos ay maaari kang magdagdag ng mga bagong module na may VBA code tulad ng inilarawan sa aking tutorial na Gumawa ng UDF.
Piliin ang iyong add-in file ( My_Finctions.xlam ) sa ang window ng VBAProject. Gamitin ang menu na Insert - Module para magdagdag ng custom na module. Kailangan mong magsulat ng mga custom na function dito.
Maaari mong i-type nang manu-mano ang code ng function na tinukoy ng user o kopyahin ito mula sa kung saan.
Iyon lang. Ngayon ay nakagawa ka na ng sarili mong add-in, idinagdag ito sa Excel at magagamit mo ang UDF dito. Kung gusto mong gumamit ng higit pang mga UDF, isulat lang ang code sa add-in na module sa VBA editor at i-save ito.
Iyon lang para sa araw na ito. Natutunan namin kung paano gumamit ng mga function na tinukoy ng user sa iyong workbook. Talagang inaasahan namin na nakakatulong ang mga alituntuning ito. Kung mayroon kang anumang mga katanungan, sumulat sa mga komento sa artikulong ito.