Създаване на (персонализирани) потребителски функции (UDF)

Този урок ще обясни как да създавате потребителски функции във VBA.

VBA се състои от подпроцедури и функционални процедури. Функционалните процедури връщат стойност и могат да бъдат извикани чрез подпроцедури или могат да бъдат използвани в листа на Excel, където стойността, която функцията произвежда, се връща в листа на Excel. Excel, разбира се, има набор от вградени функции - като например функцията за сумиране или за функция If. Процедурите за функции, които пишете във VBA, се използват по подобен начин на вградената функция и са известни като потребителски дефинирани функции (UDF).

Защо да създадете UDF?

Липсва задължителна функция

Една от основните причини да искате да създадете UDF в Excel е, че няма съществуваща вградена функция, която да изпълнява задачата вместо вас. Писането на собствена функция във VBA обикновено е най -ефективният начин за решаване на проблема. Функцията по -долу ще преобразува стойност от килограми в паунди, когато се използва променлив параметър (dblKilo), за да се получи стойността на килограмите, за да се направи изчислението.

Замяна на подпрограма (макро)

Можете да напишете подпроцедура (макрос), за да решите задачата вместо вас - но подпроцедурите не връщат стойност и не са динамични - с други думи, ако стойностите във вашия работен лист се променят, ще трябва да стартирате отново макрос, за да могат изчисленията в макроса да актуализират вашите данни. Подпроцедурата по-долу също ще преобразува нашите килограми в паунда, но всеки път, когато данните се променят в A1, ще трябва да стартирате отново макроса, за да актуализирате резултата.

Заменете формула

Може да имате наистина сложна формула в Excel, която трябва да използвате многократно - поставянето на формулата във VBA код улеснява четенето и разбирането - както и може би премахване на място за грешка на потребителя при въвеждане на формулата.

Създаване на UDF

За да създадете UDF, първо добавете модул към вашата работна книга на Excel или, ако имате работна книга за лични макроси, можете или да използвате съществуващ модул там, или да добавите нов. За да направите това, трябва да сте във редактора на Visual Basic (VBE). За да стигнете до VBE, натиснете ALT + F11 или щракнете върху опцията Visual Basic в раздела Developer на вашата лента.

БАКШИШ: Ако нямате активиран раздел Developer във вашата лента, отидете на Файл, Опции и кликнете върху Персонализирайте лентата. Уверете се, че квадратчето Разработчик е отметнато и щракнете върху OK.

За да вмъкнете нов модул, изберете проекта VBA, в който искате да вмъкнете модула (или проекта VBA за текущата книга, в която работите, или личната работна книга за макроси), щракнете върху Вмъкване Меню и щракнете Модул

След като създадете своя модул, можете да започнете да създавате своя UDF.

Всички UDF започват с функция и след това името на UDF. Функциите могат да бъдат частни или публични, но обикновено бихте искали UDF да бъде публичен, за да се появи в диалоговия прозорец Вмъкване на функция в Excel (вижте използването на функция от листа на Excel по -долу в тази статия). Ако не поставите ключовата дума Private пред функцията, тогава функцията е автоматично публична.

123 Функция TestFunction1 (intA като цяло число) като цяло числоTestFunction1 = intA * 7Крайна функция

Горната функция има един аргумент (intA). Можете да създадете функция с множество аргументи

123 Функция TestFunction2 (intA като цяло число, intB като цяло число, intC като цяло число) като цяло числоTestFunction2 = (intA * intB) + intCКрайна функция

Можете също така да създадете функция с незадължителни аргументи. Ако аргументът е пропуснат, можете да зададете стойност по подразбиране за аргумента във функцията.

123 Функция TestFunction3 (intA като цяло число, intB като цяло число, по избор intC като цяло число = 10) като цяло числоTestFunction3 = (intA * intB) + intCКрайна функция

Използване на функция от Excel лист

Създадените от вас функции по подразбиране ще се появят във вашия списък с функции в раздела User Defined на списъка с функции.

Кликнете върху fx за показване на диалоговия прозорец Вмъкване на функция.

Изберете Дефиниран от потребителя от списъка с категории

Изберете необходимата функция от наличните Потребителски функции.

Като алтернатива, когато започнете да записвате функцията си в Excel, тя трябва да се появи в падащия списък с функции.

Запазване на функциите с вашия Excel файл

Тъй като функциите са написани във VBA код, несъмнено е кодът да е достъпен за работната книга, за да бъде достъпен за използване в листа на Excel. Можете или да запишете вашите функции в работната книга, в която ги използвате, или да ги запишете в личната си работна книга за макроси. Вашата работна книга за лични макроси е скрит файл, който е достъпен винаги, когато Excel е отворен и следователно е достъпен за използване от всяка работна книга в Excel. Обикновено се създава, когато записвате макрос и избирате опцията за съхраняване на макроса в личната работна книга за макроси.

Ако искате да запазите функциите си запазени в работната книга, върху която работите, ще трябва да се уверите, че когато запазвате работната книга, тя се записва като „Работна книга с активирани макроси‘Или an xlsm файл.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave