Как да използваме Sub и Function процедури в други екселски файлове: файлове Add-Ins (*.xlam)

Безплатни 20 урока
регистрирай се и научи

Ако сте вече потребител - Регистриран съм
Видео

Тест за преминаване към следващия урок

 
Файловете Add-Ins имат разширение
*.xlam
*.xlsm
*.xlsb
 
Задаваме парола за проекта (файла *.xlsm) с команда:
Tools --> VBAProject Properties --> Protection
Tools --> Protection --> VBAProject
File --> Protection --> VBAProject
 
Файловете Add-Ins са достъпни на различни компютри
Вярно
Не вярно

Въпроси и отговори

  • Защо не се показват функциите?

    Надежда Попниколова:

    Направих AddIns файл и тествах функциите. Когато натисна "=", за да въвеждам директно формула в клетката, функциите от AddIns не се показват в падащото меню. Ако изпиша името на функцията, пресмята както трябва. Ако използвам бутона Insert Function, се показват в категорията User Defined. Така ли трябва да бъде или при мен нещо не се е получило както трябва? Благодаря предварително!

    Димитринка Вълкова:

    Точно така трябва да се получи. Избирате функцията, записана във файл .xlam (add-in), от категорията User Defined. Този файл (.xlam) е допълнение към Excel и затова функциите, които включва се избират от категорията User Defined.

    Надежда Попниколова:

    Благодаря за бързия (както винаги) отговор!

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

    Марко Костадинов:

    Здравейте! Как се извиква 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:

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

    Марко Костадинов:

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