Ako ste izgradili dodatak koji sadrži prilagođene funkcije programa Excel, možda ste otkrili da, iako funkcije dobro funkcioniraju na radnom listu programa Excel, ne možete ih koristiti u postupcima VBA u drugim radnim knjigama. Kao da uređivač Visual Basic ne može vidjeti ih. Pa to je zato što ne može! Ovaj članak objašnjava kako to možete popraviti.
Prije svega, razmislite je li to doista ono što želite učiniti. Dodaci su prvenstveno namijenjeni dodavanju dodatne funkcionalnosti vašim radnim bilježnicama. Kada učitate dodatak za Excel, njegova funkcija odmah postaje dostupna svim vašim radnim knjigama. Ako kreirate VBA postupak koji ovisi o prilagođenoj funkciji sadržanoj u drugoj radnoj knjizi, ta bi druga radna knjiga morala biti otvorena kad god želite koristiti njezinu funkciju. Isto vrijedi i za prilagođenu funkciju u dodatku. Ako je dodatak učitan, to je u redu, ali pretpostavimo da radnu knjigu pošaljete nekome drugome ili je distribuirate svojoj radnoj skupini. Morate se sjetiti distribuirati i dodatak. Moglo bi biti jednostavnije uključiti kopiju funkcije u kôd radne knjige kako bi vaši postupci imali izravan pristup (možda ćete morati učiniti Privatna funkcija ili promijeniti naziv kako bi se izbjegli sukobi u imenovanju).
Ne kažem ne čini to. Trebate samo prvo razmisliti o tome, a ako ste sigurni da će dodatak biti dostupan, nastavite. Evo kako…
Kada nastaje problem?
Pišem postupak za jednu od svojih radnih bilježnica. U svom postupku želim koristiti RemoveSpaces funkciju koju sam maloprije stvorio i spremio u svoju Martinove funkcije Dodatak koji je trenutno instaliran u mojoj kopiji programa Excel. Ali kad pokušam pokrenuti postupak dobivam pogrešku.
Uređivač Visual Basic ponaša se kao da funkcija ne postoji, ali znam da postoji i mogu je vidjeti ako pogledam kôd unutar dodatka. Zapravo, kod radi dobro ako ga pokrenem iz svog programskog dodatka.
Trebam uređivač Visual Basic da bih mogao vidjeti funkcije u mom dodatku iz modula koda a različit radna bilježnica.
Dajte svom dodatku naziv VBA projekta
Svaka radna knjiga ima Naziv projekta VBA. To se zove VBAProject. Možete promijeniti to ime ako želite, ali normalno da se ne trudim, jer normalno da nije važno.
Jeste li se ikada zapitali zašto su sve radne bilježnice prikazane u Istraživač projekta okno vizualnog osnovnog uređivača naziva se "VBAProject"? Ako imate instaliran neki od Microsoftovih dodataka, vidjet ćete da imaju drugačije ime. Microsoftovi programeri dali su svoje Paket alata za analizu Dodatak za naziv VBA projekta "funcres".
Prvo što trebate učiniti je dodijeliti jedinstveni naziv projekta VBA. To je zato što ćete ga u sljedećem koraku nazivati ovim imenom, a ako postoji više njih s istim imenom, Visual Basic Editor neće znati koji će koristiti.
U Istraživač projekta oknu odaberite naziv vašeg programskog dodatka. Ako još nije otvoren, prikažite uređivač Visual Basic Prozor svojstava. Vidjet ćete da postoji samo jedna nekretnina, Ime. Upišite drugo ime i pritisnite Unesi. Morat ćete se pridržavati uobičajenih pravila imenovanja za VBA (tj. Bez nedopuštenih znakova i razmaka). Vidjet ćete da se naziv odmah primjenjuje u Istraživač projekta.
Sada spremite promjene u svoj dodatak. Provjerite je li vaš dodatak odabran u Istraživač projekta i izabrati Datoteka> Spremi.
Postavite referencu na dodatak
U ovom koraku radnoj knjizi u kojoj želite koristiti funkcije programskog dodatka kažete da dodatak postoji. To radite do Postavljanje reference na dodatak. Možda ste se već susreli s ovom tehnikom ako ste htjeli napisati Excel kod za komunikaciju s drugim programom, npr Outlook ili Pristup.
Ako je prikladno, u ovom trenutku ponovno pokrenite Excel. To je zato što će se vaš preimenovani dodatak ponovno učitati i popis koji ćete vidjeti će se osvježiti. Ako nije zgodno, nemojte se truditi … pročitajte sljedeći odlomak i odlučite što želite učiniti.
Otvorite kodni modul u radnoj knjizi u kojem želite koristiti funkcije programskog dodatka, a zatim idite na Alati> Reference za otvaranje Reference dijalog u kojem ćete vidjeti popis svih knjižnica i drugih objekata (poput dodataka) na koje možete postaviti referencu. Ako ste ponovno pokrenuli Excel, ovaj će se popis osvježiti i moći ćete pronaći naziv projekta koji ste svom programskom dodatku dali u posljednjem koraku. Stavite kvačicu u okvir pored naziva i kliknite na u redu dugme.
Ako niste ponovno pokrenuli Excel, morat ćete pronaći datoteku dodatka klikom na pretraživati gumb na Reference dijalog. Ovo otvara Dodaj referencu prozor. Promijeni Datoteke tipa: odjeljak do Datoteke Microsoft Excel (*. Xls;*. Xla) zatim idite u mapu u kojoj je spremljen dodatak.
Odaberite svoj dodatak i kliknite Otvorena. Ovo dodaje vaš dodatak na popis na kojem ga možete odabrati i kliknuti u redu.
NAPOMENA: Ne morate raditi oba ova postupka! Odaberite jedno ili drugo, ovisno o tome jeste li ponovno pokrenuli Excel nakon što ste promijenili naziv VBA projekta dodatka.
Sada ćete moći koristiti funkcije programskog dodatka u bilo kojem modulu u radnoj knjizi u koji ste postavili referencu, a koju će prepoznati uređivač Visual Basic …
Ako pogledate Istraživač projekta vidjet ćete da je na radnu knjigu primijenjena referenca …
Važno je zapamtiti da se dodavanje reference odnosi samo na radnu knjigu za koju ste proveli ovaj postupak. Morat ćete to učiniti za svaku drugu radnu knjigu u kojoj želite koristiti funkcije dodatka.
O distribuciji vaših datoteka
Kada dodate referencu na Add-In, ova veza na Add-In je "hard-wire" u datoteci. Ako datoteku premjestite na drugo računalo ili je distribuirate suradnicima, radna će knjiga očekivati da će na istom računalu pronaći isti dodatak na istom mjestu. Također, ako se dodatak premjesti ili izbriše s računala, radna knjiga ga neće moći pronaći, a vaš kôd neće raditi.
Neki ljudi zagovaraju da se datoteka i pridruženi dodatak uvijek trebaju nalaziti u istoj mapi kako bi se izbjegli problemi koji bi to moglo uzrokovati. Naravno, možete ponovno postaviti referencu kako biste riješili problem.
Uzmite u obzir ove čimbenike i nećete imati problema.