Ако сте изградили додатак који садржи прилагођене функције програма Екцел, можда сте открили да, иако функције добро функционишу на радном листу програма Екцел, не можете их користити у ВБА процедурама у другим радним свескама. Као да уређивач Висуал Басиц не може види њих. Па то је зато што не може! Овај чланак објашњава како то можете поправити.
Пре свега, размислите да ли је то заиста оно што желите да радите. Додаци су првенствено намењени додавању додатних функција вашим радним свескама. Када учитате додатак за Екцел, његове функције одмах постају доступне свим вашим радним свескама. Ако креирате ВБА процедуру која зависи од прилагођене функције садржане у другој радној свесци, та друга радна свеска би морала бити отворена кад год желите да користите њену функцију. Исто важи и за прилагођену функцију у додатку. Ако је додатак учитан, то је у реду, али претпоставимо да радну свеску пошаљете некоме другом или да је дистрибуирате радној групи. Морате запамтити да дистрибуирате и додатак. Можда би било једноставније укључити копију функције у код радне свеске како би ваше процедуре имале директан приступ (можда ћете морати да направите Приватна функција или промените име како бисте избегли сукобе око именовања).
Не кажем не ради то. Морате само прво размислити о томе, а ако сте сигурни да ће додатак бити доступан, наставите. Ево како…
Када настаје проблем?
Пишем поступак за једну од својих радних свезака. У свом поступку желим да користим РемовеСпацес функцију коју сам малопре створио и сачувао у својој Мартинове функције Додатак који је тренутно инсталиран у мојој копији програма Екцел. Али када покушам да покренем процедуру, добијам грешку.
Уређивач Висуал Басиц се понаша као да функција не постоји, али знам да постоји и могу то видети ако погледам код у свом програмском додатку. У ствари, код ради добро ако га покренем из свог програмског додатка.
Треба ми Висуал Басиц Едитор да бих могао види функције у мом додатку из модула кода а различит радна свеска.
Дајте свом додатку назив ВБА пројекта
Свака радна свеска има Назив пројекта ВБА. То се зове ВБАПројецт. Можете да промените то име ако желите, али нормално да не сметам, јер нормално да није важно.
Јесте ли се икада запитали зашто су све радне свеске приказане у Пројецт Екплорер окно визуелног основног уређивача назива се "ВБАПројецт"? Ако имате инсталиран неки од Мицрософтових додатака, видећете да имају другачије име. Мицрософт програмери су дали Аналисис ТоолПак Додатак за назив ВБА пројекта "фунцрес".
Прво што треба да урадите је да свом додатку дате јединствено име пројекта ВБА. То је зато што ћете га у следећем кораку називати овим именом, а ако постоји више њих са истим именом, Висуал Басиц Едитор неће знати који ће користити.
У Пројецт Екплорер окну изаберите назив свог програмског додатка. Ако већ није отворен, прикажите уређивач Висуал Басиц Едитор -а Прозор својстава. Видећете да постоји само једна некретнина, Име. Унесите друго име и притисните Ентер. Мораћете да поштујете уобичајена правила именовања за ВБА (тј. Без недозвољених знакова и размака). Видећете да се име одмах примењује у Пројецт Екплорер.
Сада сачувајте промене у свом додатку. Уверите се да је ваш додатак изабран у Пројецт Екплорер и изабрати Датотека> Сачувај.
Подесите референцу на додатак
У овом кораку говорите радној свесци у којој желите да користите функције додатка да додатак постоји. Ово радите до Постављање референце на додатак. Можда сте раније наишли на ову технику ако сте хтели да напишете Екцел код за комуникацију са другим програмом, нпр Изгледи или Приступ.
Ако је згодно, поново покрените Екцел у овом тренутку. То је зато што ће се ваш преименовани додатак поново учитати и листа коју ћете видети ће бити освежена. Ако није згодно, немојте се трудити … прочитајте следећи пасус и одлучите шта желите да радите.
Отворите кодни модул у радној свесци у којем желите да користите функције програмског додатка, а затим идите на Алати> Референце да отворите Референце дијалог где ћете видети листу свих библиотека и других објеката (попут додатака) на које можете поставити референцу. Ако сте поново покренули Екцел, ова листа ће бити освежена и моћи ћете да пронађете назив пројекта који сте свом додатку дали у последњем кораку. Ставите квачицу у оквир поред имена и кликните на У реду дугме.
Ако нисте поново покренули Екцел, мораћете да пронађете датотеку програмског додатка кликом на Прегледај дугме на Референце дијалог. Ово отвара Додајте референцу прозор. Промијенити Датотеке типа: одељак до Мицрософт Екцел датотеке (*. Кслс;*. Ксла) затим идите у фасциклу у којој је ускладиштен додатак.
Одаберите свој додатак и кликните Отвори. Ово додаје ваш додатак на листу на којој га можете изабрати и кликнути У реду.
НАПОМЕНА: Не морате да радите обе ове процедуре! Одаберите једно или друго у зависности од тога да ли сте поново покренули Екцел након што сте променили назив ВБА пројекта додатка.
Сада ћете моћи да користите функције додатка у било ком модулу у радној свесци у коме сте поставили референцу и оне ће бити препознате од стране Висуал Басиц Едитор-а …
Ако погледате Пројецт Екплорер видећете да је на радну свеску примењена референца …
Важно је запамтити да се додавање референце односи само на радну свеску за коју сте извршили овај поступак. То ћете морати да урадите за сваку другу радну свеску у којој желите да користите функције додатка.
О дистрибуцији ваших датотека
Када додате референцу на програмски додатак, овај линк на програмском додатку је „ожичен“ у датотеци. Ако датотеку преместите на други рачунар или је дистрибуирате својим сарадницима, радна свеска ће очекивати да на истом рачунару пронађе исти додатак на истом месту. Такође, ако се додатак премести или избрише са рачунара, радна свеска га неће моћи пронаћи и ваш код неће радити.
Неки се залажу да се датотека и придружени додатак увек налазе у истој фасцикли како би се избегли проблеми који би то могло изазвати. Наравно, можете поново поставити референцу да бисте решили проблем.
Узмите у обзир ове факторе и нећете имати проблема.