Мазмұны
Біз пайдаланушы анықтайтын функциялар туралы оқулықтар сериясын жалғастырудамыз. Алдыңғы мақалаларымызда біз реттелетін функциялармен танысып, оларды жасау және пайдалану жолын білдік. Бұл нұсқаулықта біз осы функцияларды пайдалану ерекшеліктерін қарастырамыз және UDF және VBA макростарының арасындағы айырмашылықтарды көреміз.
Осы оқулықта біз мынаны үйренеміз:
Бұл мақала сіздің UDF туралы біліміңізді арттырады және оларды Excel жұмыс кітаптарында тиімдірек пайдалануға көмектеседі деп үміттенеміз.
UDF және макрос бір нәрсе ме?
Пайдаланушы анықтайтын функциялар мен VBA екеуі де макростар VBA редакторының көмегімен жасалады. Олардың айырмашылығы неде және не нәрсеге артықшылық беру керек?
Ең маңызды айырмашылық функция есептеуді орындайды, ал макрос кейбір әрекеттерді орындайды. Пайдаланушы анықтаған функция, кәдімгі Excel функциясы сияқты, ұяшықта жазылуы керек. Оның орындалуының нәтижесінде ұяшық кейбір мәнді қайтарады. Сонымен қатар, басқа ұяшықтардың мәндерін, сондай-ақ ағымдағы ұяшықтың кейбір қасиеттерін (атап айтқанда, пішімдеуді) өзгерту мүмкін емес. Дегенмен, шартты пішімдеу формулаларында теңшелетін функцияны пайдалануға болады.
UDF және VBA макростары әртүрлі жолдармен жұмыс істейді. Мысалы, Visual Basic өңдегішінде UDF жасағанда, Функция операторымен басталып, Аяқтау функциясы мен аяқталады. Макросты жазғанда, сіз адан бастайсыз Sub операторы және Соңғы ішкі белгісімен аяқталады.
UDF файлдарын жасау үшін барлық Visual Basic операторлары пайдаланыла бермейді. Осы себепті макрос жан-жақты шешім болып табылады.
Макрос пайдаланушы анықтайтын функциядан айырмашылығы, пайдаланушыдан ешқандай аргумент беруді талап етпейді (және ол ешқандай аргументтерді қабылдай алмайды).
Мәселе мынада, макростардың кейбір командалары ұяшық мекенжайларын немесе пішімдеу элементтерін (мысалы, түсті) пайдалана алады. Ұяшықтарды жылжытсаңыз, жолдар мен бағандарды қоссаңыз немесе алып тастасаңыз, ұяшықтардың пішімін өзгертсеңіз, макростарыңызды оңай «үзуге» болады. Бұл, әсіресе, файлыңызды макростарыңыздың қалай жұмыс істейтінін білмейтін әріптестеріңізбен бөліссеңіз мүмкін болады.
Мысалы, сізде тамаша жұмыс істейтін макросы бар файл бар. Бұл формула A1 ұяшығы мен A4 ұяшығының пайызын есептейді. Макрос бұл ұяшықтардың түсін сарыға өзгертеді. Белсенді ұяшықта пайыз пішімі орнатылған.
Егер сіз немесе басқа біреу жаңа жол енгізуді шешсеңіз, макрос A4 ұяшығындағы мәнді іздеуді жалғастырады ( UDF ішіндегі 4,1 параметрі) орындалмай, қатені қайтарады:
Бұл жағдайда қате нөлге бөлуге байланысты орын алды (жаңадан қосылғанда мән жоқ қатар). Макрос орындаған жағдайда, айталық, жинақтау, онда сіз жай ғана қате нәтиже аласыз. Бірақ сіз бұл туралы білмейсіз.
Макростарға қарағанда, пайдаланушы анықтаған функциялар мұндай жағымсыз жағдайды тудыруы мүмкін емес.
Төменде сіз өнімділігін көресіз.UDF көмегімен бірдей есептеулер. Мұнда кіріс ұяшықтарын жұмыс парағының кез келген жерінде көрсетуге болады және оны өзгерту кезінде сіз күтпеген мәселелерге тап болмайсыз.
Мен C3 тілінде келесі формуланы жаздым:
=UDF_vs_Macro(A1,A4)
Содан кейін мен бос жолды енгіздім және формула жоғарыдағы скриншотта көргендей өзгерді.
Енді біз енгізу ұяшығын немесе функциясы бар ұяшықты кез келген жерге жылжыта аламыз. Нәтиже әрқашан дұрыс болады.
UDF пайдаланудың қосымша артықшылығы - кіріс ұяшығындағы мән өзгерген кезде олардың автоматты түрде жаңартылуы. Макростарды пайдаланған кезде барлық деректердің жаңартылғанына көз жеткізіңіз.
Осы мысалды есте ұстай отырып, мен мүмкіндігінше UDF файлдарын пайдаланғым келеді және макростарды басқа есептелмейтін әрекеттер үшін ғана пайдаланғым келеді.
UDF пайдаланудың шектеулері мен кемшіліктері
Мен жоғарыда UDF артықшылықтарын айттым. Қысқасы, ол стандартты Excel функцияларымен мүмкін емес есептеулерді орындай алады. Сонымен қатар, ол ұзақ және күрделі формулаларды сақтап, оларды бір функцияға айналдыра алады. Күрделі формулаларды қайта-қайта жазудың қажеті жоқ.
Енді UDF кемшіліктері туралы толығырақ сөйлесейік:
- UDF жасау үшін VBA пайдалану қажет. Оны айналып өтуге жол жоқ. Бұл пайдаланушы UDF файлын Excel макросы сияқты жаза алмайтынын білдіреді. UDF-ті өзіңіз жасауыңыз керек. Дегенмен, көшіруге жәнебұрын жазылған макрокодтың бөліктерін функцияңызға қойыңыз. Сізге тек теңшелетін функциялардың шектеулерін білу қажет.
- UDF бағдарламасының тағы бір кемшілігі - кез келген басқа Excel функциясы сияқты ол ұяшыққа тек бір мәнді немесе мәндер жиымын қайтара алады. Ол жай ғана есептеулерді орындайды, басқа ештеңе жоқ.
- Егер жұмыс кітабыңызды әріптестеріңізбен бөліскіңіз келсе, UDF файлдарын сол файлда сақтаңыз. Әйтпесе, реттелетін функциялар олар үшін жұмыс істемейді.
- VBA өңдегішімен жасалған теңшелетін функциялар әдеттегі функцияларға қарағанда баяуырақ. Бұл әсіресе үлкен кестелерде байқалады. Өкінішке орай, VBA әзірге өте баяу бағдарламалау тілі болып табылады. Сондықтан, деректеріңіз көп болса, мүмкіндігінше стандартты функцияларды пайдалануға тырысыңыз немесе LAMBDA функциясын пайдаланып UDF файлдарын жасаңыз.
Теңшелетін функция шектеулері:
- UDFs есептеулерді орындауға және мәнді қайтаруға арналған. Оларды макростардың орнына қолдануға болмайды.
- Олар басқа ұяшықтардың мазмұнын өзгерте алмайды (тек белсенді ұяшық).
- Функция атаулары белгілі бір ережелерді сақтауы керек. Мысалы, AB123 сияқты түпнұсқа Excel функциясының атауына немесе ұяшық мекенжайына сәйкес келетін атауды пайдалана алмайсыз.
- Теңшелетін функцияңызда атаудағы бос орындар болмауы керек, бірақ ол астын сызу таңбасын қамтуы мүмкін. Дегенмен, таңдаулы әдіс - әрбір жаңаның басында бас әріптерді пайдалануword (мысалы, GetMaxBetween).
- UDF ұяшықтарды жұмыс парағының басқа аймақтарына көшіре және қоя алмайды.
- Олар белсенді жұмыс парағын өзгерте алмайды.
- UDF файлдары' t белсенді ұяшықтағы пішімдеуді өзгерту. Әртүрлі мәндерді көрсету кезінде ұяшықтың пішімдеуін өзгерткіңіз келсе, шартты пішімдеуді пайдалану керек.
- Олар қосымша кітаптарды аша алмайды.
- Оларды Application.OnTime арқылы макростарды іске қосу үшін пайдалану мүмкін емес. .
- Пайдаланушы анықтайтын функцияны макрорегистр арқылы жасау мүмкін емес.
- Функциялар Әзірлеуші > Макростар тілқатысу терезесі.
- Функциялар диалогтық терезеде ( Кірістіру > Функция ) және функциялар тізімінде олар Жалпы<7 деп жарияланған жағдайда ғана пайда болады> (егер басқаша айтылмаса, бұл әдепкі).
- Жеке деп жарияланған кез келген функциялар мүмкіндіктер тізімінде пайда болмайды.
Әлдеқайда баяу жұмыс. , сондай-ақ пайдаланудағы кейбір шектеулер сізді: «Бұл реттелетін функциялардың пайдасы не?» деп ойлауға мәжбүр етуі мүмкін. Егер сіз UDF файлдарын дұрыс жасауды және пайдалануды үйренсеңіз, функциялар кітапханасын жаза аласыз. Бұл Excel бағдарламасындағы деректермен жұмыс істеу мүмкіндігіңізді айтарлықтай кеңейтеді.
Мен үшін реттелетін функциялар уақытты үнемдейді. Ал сіз ше? Сіз өзіңіздің UDF-ті жасап көрдіңіз бе? Ол саған ұнады маExcel негізгі функцияларынан жақсы ма? Оны түсініктемелерде талқылайық :)