Как се извиква UDF, намираща се в xlam файл?

VBA за Excel

Здравейте! Как се извиква UDF, която се намира в xlam файл, във VBA кода на даден файл? Например в този код NewFileName_SameYear() е UDF, намираща се в модул в същия файл. Как трябва да редактирам кода, ако искам да преместя функцията в xlam файл и да я ползвам оттам?

Като за първи път, не успях да копирам като хората картинката. Надявам се, че вторият път е по-добре.

Здравейте, в сички процедури - Sub, Function се записват в редактора на VBA. Следващата стъпка е да запазите работния файл с разширение *.xlam (като add-in). Файловете add-in се съхраняват в специална папка по подразбиране C:\Users\UserName\AppData\Roaming\Microsoft\AddIns. Може да се запише и на друго място, но не Ви препоръчвам, така ще си спестите да указвате папката всеки път, когато използвате UDF, записана в add-in. В урока подробно показвам как се създава *.xlam файл, изгледайте още веднъж видеото. Ако имате нужда от помощ, пишете.

Здравейте! Със създаването на xlam файла и добавянето му като add-in проблеми нямам. Въпросът ми е свързан с извикването на функцията от код на обикновен xlsm файл. Ако оставя кода както е на картинката, получавам грешка „Sub or function not defined.“, въпреки че add-in файлът се отваря със стартиране на ексел и го виждам в редактора на vba. Потърсих в мрежата как трябва да се подходи в подобна ситуация и попаднах на напътствие, че в кода трябва да се напише името на add-in файла, последвано от удивителна и след това името на функцията - всичко това обградено от двойни кавички. Но като напиша new_filename = "ime-na-fayl.xlam!NewFileName_SameYear()" (където ime-na-fayl е името на add-in файла), това не води до стартиране на функцията. Та се чудя къде точно бъркам.

Кавичките объркват кода. Вижте картинките UDF, записана във VBA Project(MyCubeF.xlam)

UDF в работния обикновен xlsm file: Обърнете внимание, името на add-in MyCubeF.xlam и UDF са заградени в двойна кавичка, като MyCubeF.xlam е заградено с апостроф, единична кавичка и се отделя с удивителен знак пред UDF. След затварящата двойна кавичка със запетая се въвежда аргумента/аргументите на функцията. UDF Cube има само един аргумент, променливата nu_cube:

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

Получи се! Благодаря много, г-жо Вълкова!


Вашият отговор

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Регистрация