Преглед садржаја
Настављамо серију туторијала о кориснички дефинисаним функцијама. У нашим претходним чланцима смо се упознали са прилагођеним функцијама и научили како да их креирамо и користимо. У овом приручнику ћемо погледати специфичности коришћења ових функција и видети разлике између УДФ-ова и ВБА макроа.
У овом водичу ћемо научити следеће:
Надамо се да ће овај чланак побољшати ваше знање о УДФ-у и помоћи вам да их још ефикасније користите у вашим Екцел радним свескама.
Да ли су УДФ и макро иста ствар?
Обе корисничке функције и ВБА макрои се креирају помоћу ВБА едитора. Која је разлика између њих и чему дати предност?
Најважнија разлика је у томе што функција обавља прорачун, а макро неку радњу. Кориснички дефинисана функција, као и обична Екцел функција, мора бити написана у ћелији. Као резултат његовог извршења, ћелија враћа неку вредност. Истовремено, немогуће је променити вредности других ћелија, као и нека својства тренутне ћелије (посебно, форматирање). Међутим, можете користити прилагођену функцију у формулама за условно форматирање.
УДФ и ВБА макро функционишу на различите начине. На пример, када креирате УДФ у Висуал Басиц Едитору, почињете са наредбом Фунцтион и завршавате са Енд Фунцтион . Када снимите макро, почињете са аизраз Суб и завршава се са Енд Суб.
Не могу се сви Висуал Басиц оператори користити за креирање УДФ-ова. Из тог разлога, макро је свестраније решење.
Макро не захтева од корисника да проследи ниједан аргумент (нити може да прихвати аргументе), за разлику од кориснички дефинисане функције.
Поента је да неке команде макроа могу користити адресе ћелија или елементе форматирања (на пример, боју). Ако померате ћелије, додајете или уклањате редове и колоне, мењате формат ћелија, онда можете лако да „разбијете“ своје макрое. Ово је посебно могуће ако делите датотеку са колегама који не знају како функционишу ваши макрои.
На пример, имате датотеку са макроом који савршено ради. Ова формула израчунава проценат ћелије А1 до А4. Макро мења боју ових ћелија у жуту. Формат процента је постављен у активној ћелији.
Ако ви или неко други одлучите да убаците нови ред, макро ће наставити да тражи вредност у ћелији А4 ( параметар 4,1 у вашем УДФ-у), не успе и врати грешку:
У овом случају, грешка је настала услед дељења са нулом (нема вредности у новододатом ред). У случају да макро изврши, рецимо, сумирање, онда ћете једноставно добити погрешан резултат. Али нећете знати за то.
За разлику од макроа, кориснички дефинисане функције не могу изазвати тако непријатну ситуацију.
У наставку видите перформансеисти прорачуни користећи УДФ. Овде можете да наведете ћелије за унос било где у радном листу и нећете се суочити са неочекиваним проблемима када га мењате.
Написао сам следећу формулу у Ц3:
=UDF_vs_Macro(A1,A4)
Онда сам убацио празан ред и формула се променила као што можете да видите на слици изнад.
Сада можемо да померимо улазну ћелију или ћелију са функцијом било где. Резултат ће увек бити тачан.
Додатна предност коришћења УДФ-ова је да се они аутоматски ажурирају када се вредност у ћелији за унос промени. Када користите макрое, увек морате да се уверите да су сви подаци ажурирани.
Имајући овај пример на уму, радије бих да користим УДФ-ове где год је то могуће и користим макрое само за друге активности које се не рачунају.
Ограничења и недостаци коришћења УДФ-а
Већ сам поменуо предности УДФ-а изнад. Укратко, може да изводи прорачуне који нису могући са стандардним Екцел функцијама. Поред тога, може да сачува и користи дугачке и сложене формуле, претварајући их у једну функцију. И нећете морати да пишете компликоване формуле изнова и изнова.
Хајде сада да разговарамо детаљније о недостацима УДФ-а:
- Креирање УДФ-ова захтева коришћење ВБА. Не постоји начин да се то заобиђе. То значи да корисник не може да сними УДФ на исти начин као Екцел макро. Морате сами да креирате УДФ. Међутим, можете копирати иналепите делове претходно снимљеног макро кода у своју функцију. Само треба да будете свесни ограничења прилагођених функција.
- Још један недостатак УДФ-а је што као и свака друга Екцел функција може да врати само једну вредност или низ вредности у ћелију. Једноставно обавља прорачуне, ништа више.
- Ако желите да поделите своју радну свеску са својим колегама, обавезно сачувајте своје УДФ-ове у истој датотеци. У супротном, ваше прилагођене функције неће радити за њих.
- Прилагођене функције креиране помоћу ВБА уређивача су спорије од обичних функција. Ово је посебно приметно у великим столовима. Нажалост, ВБА је до сада веома спор програмски језик. Стога, ако имате пуно података, покушајте да користите стандардне функције кад год је то могуће или креирајте УДФ-ове користећи ЛАМБДА функцију.
Ограничења прилагођених функција:
- УДФ-ови су дизајниран за обављање прорачуна и враћање вредности. Не могу да се користе уместо макроа.
- Не могу да мењају садржај било које друге ћелије (само активне ћелије).
- Имена функција морају да прате одређена правила. На пример, не можете да користите име које одговара изворном имену Екцел функције или адреси ћелије, као што је АБ123.
- Ваша прилагођена функција не може да садржи размаке у имену, али може да садржи знак доње црте. Међутим, пожељнији метод је употреба великих слова на почетку сваког новогреч (на пример, ГетМакБетвеен).
- УДФ не може да копира и налепи ћелије у друге области радног листа.
- Не могу да мењају активни радни лист.
- УДФ-ови могу' т промените форматирање у активној ћелији. Ако желите да промените форматирање ћелије када приказујете различите вредности, требало би да користите условно форматирање.
- Не могу да отварају додатне књиге.
- Не могу се користити за покретање макроа помоћу Апплицатион.ОнТиме .
- Кориснички дефинисана функција се не може креирати помоћу снимача макроа.
- Функције се не појављују у Програмер &гт; Макрои дијалог.
- Ваше функције ће се појавити у оквиру за дијалог ( Убаци &гт; Функција ) и на листи функција само ако су декларисане као Јавне (ово је подразумевано, осим ако није другачије назначено).
- Све функције декларисане као Приватне неће се појавити на листи функција.
Прилично спора операција , као и нека ограничења у коришћењу, могу да вас наведу на размишљање: „Која је употреба ових прилагођених функција?“
Могу нам добро доћи, и могу да нам помогну ако имамо на уму ограничења која су им наметнута. Ако научите како да правилно креирате и користите УДФ-ове, можете написати своју библиотеку функција. Ово ће знатно проширити вашу способност рада са подацима у Екцел-у.
Што се мене тиче, прилагођене функције одлично штеде време. А шта је са тобом? А ти? Да ли сте већ покушали да направите свој УДФ? Да ли ти се свиделобоље од основних Екцел функција? Хајде да разговарамо о томе у коментарима :)