Дефинирана от потребителя функция на VBA на Excel (UDF)
Microsoft ни предлага много вградени функции, за да ускорим работата в Excel. Въпреки това, използвайки VBA кодиране, ние можем да създадем свои собствени функции и тези функции се наричат технически „Потребителски дефинирани функции“ (UDF). Те също се наричат „персонализирани функции“ в Excel VBA.
Всяка формула, която може да бъде достъпна от работния лист с парче код, се нарича UDF. С прости думи, всяка формула, която не е вградена, но е налична в Excel, се нарича потребителски дефинирани функции.

Как да създам дефинирани от потребителя функции?
Въпреки че UDF е част от нашия модул, те не са част от нашата редовна подпрограма във VBA. Това се нарича Функционална процедура във VBA. Подобно на начина, по който започваме макрокодирането с думата SUB по подобен начин, трябва да започнем това, като използваме думата „Функция“. Подпроцедурата има начало и край, по същия начин Функционалната процедура има начало и край.
Пример # 1 - Създайте проста функция за сумиране на UDF
Ще създадем наша собствена функция SUM в Excel, като съберем две числа.
- За да стартирате кодирането, започнете думата „Функция“ в един от модулите.

- Подобно на това как назоваваме макроса по подобен начин, трябва да дадем име и на нашата функция. Това име се използва като име на формула.

За разлика от подпрограмата, ние не можем просто да натиснем enter, за да създадем процедура, но тук трябва да споменем аргументи.
Например погледнете синтаксиса по-долу на функцията на работния лист SUM.
Номер 1, номер 2 са аргументи на функцията SUM.
- По същия начин трябва да споменем нашите аргументи.

Тук съм декларирал аргументите като „x като Integer“ и „y като Integer“. Тъй като добавяме числова стойност, трябва да присвоим типа данни само като числов тип данни.
След декларирането на аргументите, аз също съм задал типа на връщане на Integer, тъй като резултатът, даден от функцията “OurSum”, също е числова стойност.
- Сега във функцията трябва да споменем формулата, която ще използваме. Тук трябва да използваме функцията, за да започнем.

Споменахме, че името на формулата “ OurSum ” трябва да добави x и y.
- Добре, запазете кода и отидете на работния лист.

- Въведох няколко номера тук. Отворете знака за равенство и започнете да пишете OurSum. Тук можете да видите името на формулата.

- Подобно на това как избираме клетки по подобен начин избираме две клетки поотделно.

- След като изберете две клетки, натиснете клавиша Enter, за да получите резултати.

Така че работи точно по същия начин като нашата обикновена функция SUM.
- Добре, сега ще сменя числата.

- Сега отново ще приложа създадената от нас функция.

О !!! Получихме стойности за грешки с изключение на първата клетка.
Сигурно мислите защо имаме грешка.
Ако наблюдавате клетките A2 и B2, имаме стойности 48170 и 21732. Тъй като сме присвоили типа на данните като Integer, той не може да съдържа никакво число повече от 32767. Това е причината да получим грешката на excel като #NUM !.
Сега ще добавя числа, които са по-малки от 32767.

В горното изображение всички числа са цели числа, т.е. по-малко от 32767.
В първата клетка получихме резултатите. Но във втората клетка, т.е. клетка C2, получихме стойността на грешката като #VALUE !.
Въпреки че и двете числа са по-малко от 32767, все пак получихме грешката.
Това е така, защото ние сме декларирали крайния резултат също като цяло число.

Така че, когато добавим 16000 и 17229, ще получим стойност като 33229, което е повече от ограничението на целочисления тип данни от 32767. Така че крайният резултат е стойност на грешка.
Пример # 2 - Създайте функция за тестване на логически стойности
Ще създадем още една функция за тестване на логическите стойности. Нуждаем се от функция, която връща „Добро“, ако числото е> = 60, а резултатът ни е „Лошо“, ако числото е <= 50.
Стъпка 1: Стартирайте функционалната процедура и дайте име на процедурата.

Стъпка 2: Дайте аргумента като TestScore като Integer.

Стъпка 3: Нашият краен резултат трябва да бъде „Добър“ или „Лош“, така че резултатът трябва да бъде в низ.
Стъпка 4: Първо, трябва да проверим дали резултатът е> = 60 или не. Използвайте IF условие за тест.

Стъпка 5: Ако резултатът от теста е> = 60, имаме нужда от функцията да върне резултата като „Добър“. Така че TestResult = "Добре."

Стъпка 6: Ако резултатът от теста е по-малък от 60, тогава резултатът от функцията трябва да бъде „Лош“.

Добре, приключихме
- Запазете кода и отидете на работния лист.

Въведох тук няколко цифри като тест.
- Приложете функцията, която сме създали, за да получите резултати.

- Изберете клетката и натиснете Enter.

Ето за какво е СДС.