Як выкарыстоўваць і захоўваць карыстальніцкія функцыі ў Excel

  • Падзяліцца Гэтым
Michael Brown

Сёння мы працягнем вывучэнне карыстальніцкіх функцый Excel. Паколькі вы ўжо ведаеце, як ствараць UDF (і, я спадзяюся, вы таксама спрабавалі прымяніць іх у сваім Excel), давайце паглыбімся крыху глыбей і даведаемся, як выкарыстоўваць і захоўваць вызначаныя карыстальнікам функцыі ў Excel.

Больш за тое, мы пакажам вам, як лёгка захаваць вашы функцыі ў файл надбудовы Excel, каб выкарыстоўваць іх пазней у некалькі клікаў.

Такім чынам, вось пра што мы будзем гаварыць:

    Розныя спосабы выкарыстання UDF у Excel

    Выкарыстанне UDF на працоўных лістах

    Пасля таго, як вы пераканаліся, што вашы UDF працуюць правільна, вы можаце выкарыстоўваць іх у Excel формулах або ў кодзе VBA.

    Вы можаце ўжываць карыстальніцкія функцыі ў кнізе Excel гэтак жа, як і звычайныя функцыі. Напрыклад, проста напішыце ў ячэйцы наступную формулу:

    = GetMaxBetween(A1:A6,10,50)

    UDF можна выкарыстоўваць у спалучэнні са звычайнымі функцыямі. Напрыклад, дадайце тэкст да разлічанага максімальнага значэння:

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

    Вы можаце ўбачыць вынік на скрыншоце ніжэй:

    Вы можа знайсці лік, які адначасова з'яўляецца максімальным і знаходзіцца ў дыяпазоне ад 10 да 50.

    Давайце праверым іншую формулу:

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

    Карыстальніцкая функцыя GetMaxBetween правярае дыяпазон B2:B9 і знаходзіць максімальны лік ад 10 да 50. Затым, выкарыстоўваючы INDEX + MATCH, мы атрымліваем назву прадукту, якая адпавядае гэтаму максімальнаму значэнню:

    Як бачыце, выкарыстанне карыстальніцкіх функцый не надта адрозніваецца ад звычайнага Excelфункцыі.

    Пры гэтым памятайце, што вызначаная карыстальнікам функцыя можа вяртаць толькі значэнне, але не можа выконваць ніякіх іншых дзеянняў. Даведайцеся больш пра абмежаванні функцый, якія вызначаюцца карыстальнікам.

    Выкарыстанне UDF у працэдурах і функцыях VBA

    UDF таксама можна выкарыстоўваць у макрасах VBA. Ніжэй вы бачыце код макраса, які шукае максімальнае значэнне ў дыяпазоне ад 10 да 50 у слупку, які змяшчае актыўную ячэйку.

    Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Ячэйкі (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 Sub

    Код макраса змяшчае карыстальніцкую функцыю

    GetMaxBetween(.Cells, 10, 50)

    Гэта знаходзіць максімальнае значэнне ў актыўным слупку. Затым гэтае значэнне будзе вылучана. Вы можаце ўбачыць вынік макраса на скрыншоце ніжэй.

    Карыстальніцкая функцыя таксама можа выкарыстоўвацца ўнутры іншай карыстацкай функцыі. Раней у нашым блогу мы разглядалі праблему пераўтварэння ліку ў тэкст з дапамогай карыстальніцкай функцыі SpellNumber .

    З яе дапамогай мы можам атрымаць максімальнае значэнне з дыяпазону і адразу запішыце гэта як тэкст.

    Для гэтага мы створым новую карыстальніцкую функцыю, у якой будзем выкарыстоўваць функцыі GetMaxBetween і SpellNumber , якія ўжо знаёмыя нам.

    Функцыя SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End Функцыя

    Як бачыце, функцыя GetMaxBetween з'яўляецца аргументам для іншай карыстальніцкай функцыі, SpellNumber . Ён вызначае максімальнае значэнне, як мы рабілі шмат разоў раней. Затым гэты лік пераўтворыцца ў тэкст.

    На скрыншоце вышэй вы бачыце, як функцыя SpellGetMaxBetween знаходзіць максімальную лічбу паміж 100 і 500 і затым пераўтворыць яго ў тэкст.

    Выклік UDF з іншых працоўных кніг

    Калі вы стварылі UDF у сваёй працоўнай кнізе, гэта, на жаль, не азначае, што вы не сутыкнецеся з праблемамі.

    Паводле майго досведу, большасць карыстальнікаў рана ці позна ствараюць сваю асабістую калекцыю макрасаў і карыстальніцкіх функцый для аўтаматызацыі асобных працэсаў і разлікаў. І тут узнікае праблема - код вызначаных карыстальнікам функцый у Visual Basic трэба дзесьці захоўваць, каб потым выкарыстоўваць у працы.

    Каб прымяніць карыстальніцкую функцыю, рабочая кніга, у якой вы яе захавалі, павінна быць адкрыта у вашым Excel. Калі гэта не так, вы атрымаеце #NAME! памылка пры спробе выкарыстоўваць яго. Гэтая памылка азначае, што Excel не ведае імя функцыі, якую вы хочаце выкарыстоўваць у формуле.

    Давайце паглядзім на спосабы ўякія вы можаце выкарыстоўваць карыстальніцкія функцыі, якія вы ствараеце.

    Спосаб 1. Дадайце назву працоўнай кнігі да функцыі

    Вы можаце пазначыць назву працоўнай кнігі, у якой яна знаходзіцца, перад назвай функцыя. Напрыклад, калі вы захавалі карыстальніцкую функцыю GetMaxBetween() у працоўнай кнізе з назвай My_Functions.xlsm , то вы павінны ўвесці наступную формулу:

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

    Спосаб 2. Захоўвайце ўсе UDF у адным агульным файле

    Захавайце ўсе карыстальніцкія функцыі ў адной спецыяльнай працоўнай кнізе (напрыклад, My_Functions.xlsm ) і скапіруйце патрэбную функцыю з яе ў бягучую працоўную кнігу, калі неабходна.

    Кожны раз, калі вы ствараеце новую карыстальніцкую функцыю, вам неабходна прадубляваць яе код у працоўнай кнізе, у якой вы будзеце яе выкарыстоўваць. Пры гэтым спосабе могуць узнікнуць некаторыя нязручнасці:

    • Калі працоўных файлаў шмат, а функцыя патрэбна ўсюды, то код прыйдзецца капіяваць у кожную кнігу.
    • Не забывайце захоўваць кнігу ў фармаце з падтрымкай макрасаў (.xlsm або .xlsb).
    • Пры адкрыцці такога файла абарона ад макрасаў кожны раз будзе выводзіць папярэджанне, якое трэба пацвердзіць. Многія карыстальнікі палохаюцца, калі бачаць жоўтую панэль папярэджання, якая просіць іх уключыць макрасы. Каб не бачыць гэтага паведамлення, неабходна цалкам адключыць абарону Excel. Аднак гэта не заўсёды можа быць правільным і бяспечным.

    Я думаю, вы пагодзіцеся са мной, што ўвесь час адкрываючыфайл і капіраванне з яго кода карыстальніцкіх функцый або запіс імя гэтага файла ў формуле - не лепшае рашэнне. такім чынам, мы падышлі да трэцяга спосабу.

    Спосаб 3. Стварыце файл надбудовы Excel

    Я думаю, што лепшы спосаб - гэта захоўваць часта выкарыстоўваюцца карыстальніцкія функцыі ў файле надбудовы Excel . Перавагі выкарыстання надбудовы:

    • Вам трэба падключыць надбудову да Excel толькі адзін раз. Пасля гэтага вы можаце выкарыстоўваць яго працэдуры і функцыі ў любым файле на гэтым кампутары. Вам не трэба захоўваць свае працоўныя кнігі ў фарматах .xlsm і .xlsb, паколькі зыходны код будзе захоўвацца не ў іх, а ў файле надбудовы.
    • Вас больш не будзе турбаваць абарона макрасаў, бо надбудовы заўсёды спасылаюцца на надзейныя крыніцы.
    • Надбудова - гэта асобны файл. Яе лёгка пераносіць з камп'ютара на камп'ютар, дзяліцца з калегамі.

    Пра стварэнне і выкарыстанне надбудовы мы пагаворым пазней.

    Выкарыстанне надбудовы убудовы для захоўвання карыстальніцкіх функцый

    Як мне стварыць уласную надбудову? Давайце разгледзім гэты працэс крок за крокам.

    Крок 1. Стварыце файл надбудовы

    Адкрыйце Microsoft Excel, стварыце новую кнігу і захавайце яе пад любым прыдатным імем (напрыклад, My_Functions) у фармаце надбудовы. Для гэтага выкарыстоўвайце меню Файл - Захаваць як або клавішу F12. Абавязкова ўкажыце тып файла Надбудова Excel :

    Ваша надбудова будзе мець пашырэнне .xlam.

    Савет. Звярніце ўвагу, штопа змаўчанні Excel захоўвае надбудовы ў тэчцы C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns . Я рэкамендую вам прыняць месцазнаходжанне па змаўчанні. Калі вы хочаце, вы можаце паказаць любую іншую тэчку. Але потым пры падключэнні надбудовы вам трэба будзе ўручную знайсці і паказаць яе новае размяшчэнне. Калі вы захаваеце яго ў тэчцы па змаўчанні, вам не прыйдзецца шукаць надбудову на вашым кампутары. Excel аўтаматычна пералічыць яго.

    Крок 2. Падключыце файл надбудовы

    Цяпер створаную надбудову неабходна падключыць да Excel. Затым ён будзе загружаны аўтаматычна пры запуску праграмы. Для гэтага выкарыстоўвайце меню Файл - Параметры - Дадаткі . Пераканайцеся, што ў полі Кіраванне выбрана Дадаткі Excel . Націсніце на кнопку Go унізе акна. У якое з'явілася акне адзначце нашу надбудову My_Functions. Калі вы не бачыце яго ў спісе, націсніце кнопку Агляд і перайдзіце да месцазнаходжання файла надбудовы.

    Калі вы выкарыстоўваеце надбудову для захоўвання карыстальніцкіх функцый, трэба прытрымлівацца аднаго простага правіла. Калі вы перадаеце працоўную кнігу іншым людзям, не забудзьцеся таксама перадаць копію надбудовы, якая змяшчае патрэбныя вам функцыі. Яны павінны падключыць яго такім жа чынам, як вы зрабілі цяпер.

    Крок 3. Дадайце карыстальніцкія функцыі і макрасы ў надбудову

    Наша надбудова падключана да Excel, але не не маюць ніякай функцыянальнасціяшчэ. Каб дадаць да яго новыя UDF, адкрыйце рэдактар ​​Visual Basic, націснуўшы Alt + F11. Затым вы можаце дадаць новыя модулі з кодам VBA, як апісана ў маім падручніку па стварэнні UDF.

    Выберыце файл надбудовы ( My_Finctions.xlam ) у акно VBAProject. Скарыстайцеся меню Уставіць - Модуль , каб дадаць уласны модуль. Вам трэба ўпісаць у яго ўласныя функцыі.

    Вы можаце альбо ўвесці код вызначанай карыстальнікам функцыі ўручную, альбо скапіяваць яго аднекуль.

    Вось і ўсё. Цяпер вы стварылі ўласную надбудову, дадалі яе ў Excel і можаце выкарыстоўваць у ёй UDF. Калі вы хочаце выкарыстоўваць больш UDF, проста напішыце код у модулі надбудовы ў рэдактары VBA і захавайце яго.

    На сёння ўсё. Мы даведаліся, як выкарыстоўваць вызначаныя карыстальнікам функцыі ў вашай кнізе. Мы вельмі спадзяемся, што гэтыя рэкамендацыі спатрэбяцца вам. Калі ў вас ёсць якія-небудзь пытанні, пішыце ў каментарах да гэтага артыкула.

    Майкл Браўн - адданы энтузіяст тэхналогій, які любіць спрашчэнне складаных працэсаў з дапамогай праграмных інструментаў. Маючы больш чым дзесяцігадовы досвед працы ў індустрыі тэхналогій, ён удасканальваў свае навыкі ў Microsoft Excel і Outlook, а таксама ў Google Sheets і Docs. Блог Майкла прысвечаны таму, каб падзяліцца сваімі ведамі і вопытам з іншымі, даючы простыя ў выкананні парады і падручнікі для павышэння прадукцыйнасці і эфектыўнасці. Незалежна ад таго, з'яўляецеся вы дасведчаным прафесіяналам або пачаткоўцам, блог Майкла прапануе каштоўную інфармацыю і практычныя парады, каб атрымаць максімальную аддачу ад гэтых неабходных праграмных інструментаў.