Предности и недостатоци на сопствените функции во Excel

  • Споделете Го Ова
Michael Brown

Ја продолжуваме серијата упатства за функциите дефинирани од корисникот. Во нашите претходни написи се запознавме со сопствените функции и научивме како да ги креираме и користиме. Во овој прирачник ќе ги разгледаме спецификите за користење на овие функции и ќе ги видиме разликите помеѓу UDF и VBA макроата.

Во ова упатство ќе го научиме следново:

    Се надеваме дека овој напис ќе го подобри вашето знаење за UDF и ќе ви помогне да ги користите уште поефикасно во вашите работни книги на Excel.

    Дали UDF и Macro се исто?

    И функциите дефинирани од корисникот и VBA макроата се креираат со помош на уредникот VBA. Која е разликата меѓу нив и на што да се даде предност?

    Најважната разлика е во тоа што функцијата ја извршува пресметката, а макрото врши одредена акција. Функцијата дефинирана од корисникот, како обична функција на Excel, мора да биде напишана во ќелија. Како резултат на неговото извршување, ќелијата враќа одредена вредност. Во исто време, невозможно е да се променат вредностите на другите ќелии, како и некои својства на тековната ќелија (особено форматирање). Сепак, можете да користите приспособена функција во формули за условно форматирање.

    UDF и VBA макрото работат на различни начини. На пример, кога креирате UDF во уредувачот на Visual Basic, започнувате со изјава Функција и завршувате со Крајна функција . Кога снимате макро, започнувате со aизјава Sub и завршуваат со End Sub.

    Не сите оператори на Visual Basic може да се користат за креирање UDF. Поради оваа причина, макрото е поразновидно решение.

    Макрото не бара од корисникот да дава никакви аргументи (ниту може да прифати какви било аргументи), за разлика од функцијата дефинирана од корисникот.

    Поентата е дека некои команди на макроа може да користат адреси на ќелии или елементи за форматирање (на пример, боја). Ако преместувате ќелии, додавате или отстранувате редови и колони, го менувате форматот на ќелиите, тогаш лесно можете да ги „скршите“ вашите макроа. Ова е особено возможно ако ја споделите вашата датотека со колеги кои не знаат како функционираат вашите макроа.

    На пример, имате датотека со макро кое совршено работи. Оваа формула го пресметува процентот на ќелиите А1 до А4. Макро ја менува бојата на овие ќелии во жолта. Во активната ќелија е поставен процентуален формат.

    Ако вие или некој друг одлучите да вметнете нов ред, макрото ќе продолжи да ја бара вредноста во ќелијата А4 ( параметарот 4,1 во вашиот UDF), пропаднете и вратите грешка:

    Во овој случај, грешката настанала поради делење со нула (без вредност во новододаденото ред). Во случај макрото да изврши, да речеме, сумирање, тогаш едноставно ќе добиете погрешен резултат. Но, нема да знаете за тоа.

    За разлика од макроата, функциите дефинирани од корисникот не можат да предизвикаат таква непријатна ситуација.

    Подолу ги гледате перформансите наистите пресметки користејќи UDF. Овде можете да наведете влезни ќелии каде било во работниот лист и нема да се соочите со никакви неочекувани проблеми при неговото менување.

    Ја напишав следната формула во C3:

    =UDF_vs_Macro(A1,A4)

    Потоа вметнав празен ред и формулата се смени како што можете да видите на сликата од екранот погоре.

    Сега можеме да преместиме влезна ќелија или ќелија со функција насекаде. Резултатот секогаш ќе биде точен.

    Дополнителна придобивка од користењето UDF е тоа што тие автоматски се ажурираат кога вредноста во влезната ќелија се менува. Кога користите макроа, секогаш мора да се погрижите сите податоци да се ажурирани.

    Имајќи го предвид овој пример, претпочитам да користам UDF секогаш кога е можно и да користам макроа само за други активности што не се пресметуваат.

    Ограничувања и недостатоци на користење на UDF

    Веќе ги споменав предностите на UDF погоре. Накратко, може да врши пресметки кои не се можни со стандардните функции на Excel. Покрај тоа, може да зачува и користи долги и сложени формули, претворајќи ги во една функција. И нема да морате да пишувате комплицирани формули одново и одново.

    Сега да разговараме подетално за недостатоците на UDF:

    • Креирањето UDF бара употреба на VBA. Нема начин да се заобиколи. Ова значи дека корисникот не може да го снима UDF на ист начин како макрото на Excel. Вие сами треба да го создадете UDF. Сепак, можете да копирате изалепете делови од претходно снимениот макро код во вашата функција. Само треба да знаете за ограничувањата на сопствените функции.
    • Друг недостаток на UDF е тоа што како и секоја друга функција на Excel, таа може да врати само една вредност или низа вредности во ќелија. Едноставно врши пресметки, ништо повеќе.
    • Ако сакате да ја споделите работната книга со вашите колеги, не заборавајте да ги зачувате вашите UDF во истата датотека. Во спротивно, вашите сопствени функции нема да работат за нив.
    • Прилагодените функции создадени со уредникот VBA се побавни од обичните функции. Ова е особено забележливо кај големите маси. За жал, VBA е многу бавен програмски јазик досега. Затоа, ако имате многу податоци, обидете се да користите стандардни функции секогаш кога е можно или креирајте UDF користејќи ја функцијата LAMBDA.

    Прилагодени функционални ограничувања:

    • UDF се дизајниран да врши пресметки и да враќа вредност. Тие не можат да се користат наместо макроата.
    • Тие не можат да ја менуваат содржината на која било друга ќелија (само на активната ќелија).
    • Имињата на функциите мора да следат одредени правила. На пример, не можете да користите име што одговара на природното име на функцијата Excel или адреса на ќелија, како што е AB123.
    • Вашата приспособена функција не може да содржи празни места во името, но може да го вклучува знакот за долна црта. Сепак, префериран метод е да се користат големи букви на почетокот на секоја новазбор (на пример, GetMaxBetween).
    • UDF не може да копира и залепува ќелии во други области на работниот лист.
    • Тие не можат да го променат активниот работен лист.
    • UDFs може' да го промените форматирањето во активната ќелија. Ако сакате да го промените форматирањето на ќелијата при прикажување различни вредности, треба да користите условно форматирање.
    • Тие не можат да отвораат дополнителни книги.
    • Тие не можат да се користат за извршување макроа користејќи Application.OnTime .
    • Функцијата дефинирана од корисникот не може да се креира со помош на макро рекордерот.
    • Функциите не се појавуваат во Програмер > Дијалог за макроа .
    • Вашите функции ќе се појават во полето за дијалог ( Вметни > Функција ) и во списокот со функции само ако се декларирани како Јавни (ова е стандардно, освен ако не е поинаку назначено).
    • Сите функции декларирани како Приватни нема да се појават во списокот со карактеристики.

    Доста бавна операција , како и некои ограничувања во употреба, може да ве натераат да размислите: „Која е употребата на овие приспособени функции?“

    Тие можат да ни се најдат и да го направат ако внимаваме на ограничувањата што им се наметнуваат. Ако научите како правилно да креирате и користите UDF, можете да ја напишете вашата библиотека на функции. Ова во голема мера ќе ја прошири вашата способност за работа со податоци во Excel.

    Што се однесува до мене, приспособените функции одлично заштедуваат време. А ти? Дали веќе сте се обиделе да креирате сопствен UDF? Ти се допадна липодобро од основните функции на Excel? Ајде да разговараме за тоа во коментарите :)

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.