Satura rādītājs
Šodien mēs turpināsim pētīt lietotāja definētās Excel funkcijas. Tā kā jau zināt, kā izveidot UDF (un, cerams, esat arī izmēģinājis tās piemērot savā Excel programmā), iedziļināsimies nedaudz dziļāk un uzzināsim, kā lietotāja definētās funkcijas izmantot un saglabāt Excel programmā.
Turklāt mēs jums parādīsim, kā viegli saglabāt funkcijas Excel papildinājuma failā, lai vēlāk tās izmantotu ar dažiem klikšķiem.
Lūk, par ko mēs runāsim:
Dažādi UDF izmantošanas veidi programmā Excel
UDF izmantošana darblapās
Kad esat pārliecinājies, ka UDF darbojas pareizi, varat tos izmantot Excel formulās vai VBA kodā.
Pielāgotās funkcijas Excel darbgrāmatā varat izmantot tāpat kā parastās funkcijas. Piemēram, vienkārši ierakstiet šūnā turpmāk norādīto formulu:
= GetMaxBetween(A1:A6,10,50)
UDF var izmantot kopā ar parastajām funkcijām. Piemēram, aprēķinātajai maksimālajai vērtībai pievienot tekstu:
= CONCATENATE("Maksimālā vērtība starp 10 un 50 ir ", GetMaxBetween(A1: A6,10,50))
Rezultātu varat redzēt zemāk redzamajā ekrānšā attēlā:
Varat atrast skaitli, kas ir maksimālais un atrodas diapazonā no 10 līdz 50.
Pārbaudīsim citu formulu:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
Pielāgotā funkcija GetMaxBetween pārbauda diapazonu B2:B9 un atrod maksimālo skaitli no 10 līdz 50. Pēc tam, izmantojot INDEX + MATCH, tiek iegūts produkta nosaukums, kas atbilst šai maksimālajai vērtībai:
Kā redzat, pielāgoto funkciju lietošana pārāk neatšķiras no parastajām Excel funkcijām.
To darot, atcerieties, ka lietotāja definētā funkcija var tikai atdot vērtību, bet nevar veikt citas darbības. Uzziniet vairāk par lietotāja definēto funkciju ierobežojumiem.
UDF izmantošana VBA procedūrās un funkcijās
UDF var izmantot arī VBA makroprogrammās. Zemāk redzams makrokods, kas aktīvās šūnas slejā meklē maksimālo vērtību diapazonā no 10 līdz 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 SubMakro kodā ir iekļauta pielāgotā funkcija
GetMaxBetween(.Cells, 10, 50)
Tas atrod maksimālo vērtību aktīvajā slejā. Pēc tam šī vērtība tiks izcelta. Makro rezultāts redzams zemāk redzamajā ekrānšāviņas attēlā.
Pielāgotu funkciju var izmantot arī citas pielāgotas funkcijas iekšienē. Iepriekš mūsu emuārā mēs aplūkojām problēmu, kā skaitli pārvērst tekstā, izmantojot pielāgotu funkciju ar nosaukumu SpellNumber .
Ar tās palīdzību mēs varam iegūt maksimālo vērtību no diapazona un uzreiz to pierakstīt kā tekstu.
Lai to izdarītu, mēs izveidosim jaunu pielāgotu funkciju, kurā izmantosim funkcijas GetMaxBetween un SpellNumber kas mums jau ir pazīstami.
Funkcija SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End FunctionKā redzat, GetMaxBetween funkcija ir citas pielāgotās funkcijas arguments, SpellNumber . Tas nosaka maksimālo vērtību, kā mēs to jau esam darījuši daudzas reizes iepriekš. Pēc tam šis skaitlis tiek pārvērsts tekstā.
Iepriekš redzamajā ekrānšāviņas attēlā redzams, kā SpellGetMaxBetween funkcija atrod maksimālo skaitli no 100 līdz 500 un pēc tam pārvērš to tekstā.
UDF izsaukšana no citām darbgrāmatām
Ja darbgrāmatā esat izveidojis UDF, tas diemžēl nenozīmē, ka jums neradīsies nekādas problēmas.
Mana pieredze liecina, ka lielākā daļa lietotāju agrāk vai vēlāk izveido savu personīgo makru un pielāgotu funkciju kolekciju, lai automatizētu atsevišķus procesus un aprēķinus. Un šeit rodas problēma - lietotāja definēto funkciju kods Visual Basic ir kaut kur jāuzglabā, lai vēlāk to varētu izmantot darbā.
Lai piemērotu pielāgoto funkciju, darbgrāmatai, kurā tā ir saglabāta, jābūt atvērtai programmā Excel. Ja tā nav atvērta, mēģinot to izmantot, tiks parādīta kļūda #NAME! Šī kļūda norāda, ka programma Excel nezina funkcijas nosaukumu, kuru vēlaties izmantot formulā.
Apskatīsim veidus, kā varat izmantot izveidotās pielāgotās funkcijas.
metode. 1. Pievienojiet darbgrāmatas nosaukumu funkcijai
Pirms funkcijas nosaukuma varat norādīt tās darbgrāmatas nosaukumu, kurā tā atrodas. Piemēram, ja esat saglabājis pielāgotu funkciju GetMaxBetween() darbgrāmatā ar nosaukumu My_Functions.xlsm , tad jāievada šāda formula:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
metode. Saglabāt visus UDF vienā kopīgā failā
Saglabājiet visas pielāgotās funkcijas vienā īpašā darbgrāmatā (piemēram, My_Functions.xlsm ) un, ja nepieciešams, nokopējiet no tās vajadzīgo funkciju pašreizējā darbgrāmatā.
Katru reizi, kad izveidojat jaunu pielāgotu funkciju, tās kods ir jāduplicē darbgrāmatā, kurā to izmantosiet. Izmantojot šo metodi, var rasties vairākas neērtības:
- Ja ir daudz darba failu un funkcija ir nepieciešama visur, tad kods būs jākopē katrā grāmatā.
- Neaizmirstiet darbgrāmatu saglabāt makroatļaujas formātā (.xlsm vai .xlsb).
- Atverot šādu failu, aizsardzība pret makrosistēmām katru reizi parādīs brīdinājumu, kas jāapstiprina. Daudzi lietotāji nobīstas, kad redz dzelteno joslas brīdinājumu, kurā tiek prasīts iespējot makrosistēmas. Lai izvairītos no šī ziņojuma redzēšanas, ir pilnībā jāatslēdz Excel aizsardzība. Tomēr tas ne vienmēr ir pareizi un droši.
Domāju, ka jūs man piekritīsiet, ka visu laiku atvērt failu un no tā kopēt lietotāja definēto funkciju kodu vai formulā ierakstīt šī faila nosaukumu nav labākais risinājums.Tādējādi mēs nonācām pie trešā risinājuma.
3. metode. Izveidot Excel papildinājuma failu
Manuprāt, vislabākais veids ir saglabāt bieži izmantotās pielāgotās funkcijas Excel papildinājuma failā. Papildinājuma izmantošanas priekšrocības:
- Papildinājums ir tikai vienreiz jāpievieno programmai Excel. Pēc tam varat izmantot tās procedūras un funkcijas jebkurā failā šajā datorā. Jums nav nepieciešams saglabāt darbgrāmatas .xlsm un .xlsb formātā, jo avota kods netiks saglabāts tajās, bet gan papildinājuma failā.
- Jums vairs neradīs problēmas makroekrānu aizsardzība, jo papildinājumi vienmēr norāda uz uzticamiem avotiem.
- Papildinājums ir atsevišķs fails. To ir viegli pārnest no datora uz datoru, kopīgot ar kolēģiem.
Par papildinājuma izveidi un lietošanu sīkāk runāsim vēlāk.
Papildinājumu izmantošana pielāgotu funkciju glabāšanai
Kā izveidot savu pievienojumprogrammu? Apskatīsim šo procesu soli pa solim.
Solis 1. Izveidojiet pievienojumprogrammas failu
Atveriet Microsoft Excel, izveidojiet jaunu darbgrāmatu un saglabājiet to ar jebkuru piemērotu nosaukumu (piemēram, My_Functions) pievienojumprogrammas formātā. Lai to izdarītu, izmantojiet izvēlni Failu - Saglabāt kā vai taustiņu F12. Noteikti norādiet faila veidu. Excel papildinājums :
Jūsu papildinājumam būs paplašinājums .xlam.
Padoms. Lūdzu, ņemiet vērā, ka pēc noklusējuma Excel saglabā papildinājumus datnē C:\Uzņēmēji\[Jūsu_nosaukums]\AppData\Roaming\Microsoft\AddIns mapi. Iesaku pieņemt noklusējuma atrašanās vietu. Ja vēlaties, varat norādīt jebkuru citu mapi. Taču tad, pievienojot papildinājumu, tā jaunā atrašanās vieta būs jāatrod un jānorāda manuāli. Ja to saglabāsiet noklusējuma mapē, papildinājums datorā nebūs jāmeklē. Excel to automātiski uzskaitīs.
Solis 2. Pievienojiet pievienojumprogrammas failu
Tagad mūsu izveidotā pievienojumprogramma ir jāsavieno ar Excel. Tad tā tiks ielādēta automātiski, kad programma tiks palaista. Lai to izdarītu, izmantojiet izvēlni Faili - Iespējas - Papildinājumi . Pārliecinieties, ka Excel papildinājumi ir atlasīts Pārvaldiet lauciņā. Noklikšķiniet uz Go loga apakšdaļā. Atvērtajā logā atzīmējiet mūsu pievienojumprogrammu My_Functions. Ja sarakstā tā nav redzama, noklikšķiniet uz pogas Pārlūkot pogu un pārlūkojiet, kur atrodas jūsu pievienojumprogrammas fails.
Ja pielāgoto funkciju glabāšanai izmantojat papildinājumu, ir jāievēro viens vienkāršs noteikums. Ja darbgrāmatu nododat citiem cilvēkiem, pārliecinieties, ka nododat arī papildinājuma kopiju, kurā ir vajadzīgā funkcionalitāte. Viņiem tā būtu jāpievieno tādā pašā veidā kā tagad.
Solis 3. Pielāgotu funkciju un makrouzdevumu pievienošana papildinājumam
Mūsu pievienojumprogramma ir savienota ar Excel, taču tai vēl nav nekādas funkcionalitātes. Lai pievienotu tai jaunus UDF, atveriet Visual Basic redaktoru, nospiežot Alt + F11 . Pēc tam varat pievienot jaunus moduļus ar VBA kodu, kā aprakstīts manā pamācībā UDF izveide.
Izvēlieties savu pievienojumprogrammas failu ( My_Finctions.xlam ) VBAProjekta logā. Izmantojiet pogu Ievietot - Modulis lai pievienotu pielāgotu moduli. Tajā ir jāieraksta pielāgotas funkcijas.
Varat manuāli ievadīt lietotāja definētās funkcijas kodu vai nokopēt to no citurienes.
Tas ir viss. Tagad esat izveidojis savu pievienojumprogrammu, pievienojis to programmai Excel un varat tajā izmantot UDF. Ja vēlaties izmantot vairāk UDF, vienkārši uzrakstiet kodu pievienojumprogrammas modulī VBA redaktorā un saglabājiet to.
Uz šodienu tas ir viss. Esam iemācījušies, kā lietotāja definētās funkcijas izmantot darbgrāmatā. Ļoti ceram, ka šīs vadlīnijas jums būs noderīgas. Ja jums ir kādi jautājumi, rakstiet komentāros pie šī raksta.