Kui olete koostanud lisandmooduli, mis sisaldab teie Exceli kohandatud funktsioone, võisite avastada, et kuigi funktsioonid toimivad Exceli töölehel hästi, ei saa te neid teiste töövihikute VBA-protseduurides kasutada. Visual Basic Editor ei saa justkui hakkama vaata neid. Noh, see on sellepärast, et see ei saa! Selles artiklis selgitatakse, kuidas seda parandada.
Kõigepealt kaaluge, kas see on tõesti see, mida soovite teha. Lisandmoodulid on mõeldud eelkõige töövihikutele lisafunktsionaalsuse lisamiseks. Exceli lisandmooduli laadimisel muutub selle funktsioon kohe kättesaadavaks kõigile teie töövihikutele. Kui loote VBA protseduuri, mis sõltub teises töövihikus sisalduvast kohandatud funktsioonist, peab see teine töövihik olema avatud alati, kui soovite selle funktsiooni kasutada. Sama kehtib lisandmooduli kohandatud funktsiooni kohta. Kui lisandmoodul on laaditud, on see korras, kuid eeldame, et saadate oma töövihiku kellelegi teisele või levitate selle oma töörühmale. Peate meeles pidama ka lisandmooduli levitamist. Funktsiooni koopia lisamine töövihiku koodi võib olla lihtsam, nii et teie protseduuridel on sellele otsene juurdepääs (võib -olla peate selle muutma Privaatne funktsioon või muutke selle nime, et vältida nimede konflikte).
Ma ei ütle, et ära tee seda. Peate lihtsalt sellele kõigepealt mõtlema ja kui olete kindel, et lisandmoodul on saadaval, siis jätkake. Siin on, kuidas…
Millal probleem ilmneb?
Kirjutan ühe oma töövihiku jaoks protseduuri. Oma protseduuris tahan kasutada RemoveSpaces funktsioon, mille lõin mõni aeg tagasi ja salvestasin oma kausta Martini funktsioonid Lisandmoodul, mis on praegu minu Exceli koopiasse installitud. Kuid kui proovin oma protseduuri käivitada, kuvatakse viga.
Visual Basic Editor käitub nii, nagu seda funktsiooni poleks olemas, kuid ma tean, et see on olemas ja ma näen seda, kui vaatan oma lisandmooduli koodi. Tegelikult töötab kood hästi, kui käivitan selle oma lisandmooduli seest.
Ma vajan Visual Basic Editori, et saaksin seda teha vaata minu lisandmooduli funktsioonid a koodimooduli seest erinev töövihik.
Andke oma lisandmoodulile VBA projekti nimi
Igal töövihikul on a VBA projekti nimi. Seda nimetatakse VBAProjekt. Soovi korral saate seda nime muuta, kuid tavaliselt ma ei viitsi, sest tavaliselt pole sellel vahet.
Kas olete kunagi mõelnud, miks kõik töövihikud kuvatakse Projektiuurija visuaalse põhiredaktori paani nimetatakse "VBAProjekt"? Kui teil on mõni Microsofti lisandmoodul installitud, näete, et neil on teine nimi. Microsofti arendajad on andnud oma Analüüsi tööriistapakk Lisage VBA projekti nimi "funcres".
Esimene asi, mida teha, on anda oma lisandmoodulile ainulaadne VBA projekti nimi. Seda seetõttu, et viitate sellele järgmises etapis selle nimega ja kui sama nimega on rohkem kui üks, ei tea Visual Basic Editor, millist neist kasutada.
Aastal Projektiuurija paanil valige oma lisandmooduli nimi. Kui see pole veel avatud, kuvage Visual Basic Editori oma Atribuutide aken. Näete, et on ainult üks vara Nimi. Sisestage teine nimi ja vajutage Sisenema. Peate järgima VBA tavapäraseid nimetamisreegleid (st ebaseaduslikke märke ja tühikuid). Näete, et nimi rakendatakse kohe kaustas Projektiuurija.
Nüüd salvestage muudatused oma lisandmoodulisse. Veenduge, et teie lisandmoodul oleks jaotises valitud Projektiuurija ja valida Fail> Salvesta.
Määrake viide lisandmoodulile
Selles etapis ütlete töövihikule, milles soovite oma lisandmooduli funktsioone kasutada, et lisandmoodul on olemas. Sa teed seda Viite seadistamine lisandmoodulile. Võib -olla olete selle tehnikaga varem kokku puutunud, kui olete tahtnud kirjutada Exceli koodi, et suhelda mõne muu programmiga, näiteks Väljavaade või Juurdepääs.
Kui see on mugav, taaskäivitage Excel sel hetkel. Selle põhjuseks on asjaolu, et teie ümbernimetatud lisandmoodul laaditakse uuesti ja loend, mida näete, värskendatakse. Kui see pole mugav, ärge viitsige… lugege järgmist lõiku ja otsustage, mida teha soovite.
Avage töövihikus koodimoodul, milles soovite lisandmooduli funktsioone kasutada, seejärel minge aadressile Tööriistad> Viited avamiseks Viited dialoogi, kus näete kõigi teekide ja muude objektide (nt lisandmoodulite) loendit, millele saate viite määrata. Kui olete Exceli taaskäivitanud, värskendatakse seda loendit ja leiate projekti nime, mille andsite oma lisandmoodulile viimases etapis. Tehke linnuke nime kõrval olevasse kasti ja klõpsake nuppu Okei nuppu.
Kui te ei taaskäivitanud Excelit, peate oma lisandmooduli faili leidma, klõpsates nuppu Sirvi nuppu nupul Viited dialoogi. See avab Lisa viide aken. Muuda Failid tüüpi: jaotis kuni Microsoft Exceli failid (*. Xls;*. Xla) seejärel sirvige kausta, kuhu lisandmoodul on salvestatud.
Valige oma lisandmoodul ja klõpsake nuppu Avatud. See lisab teie lisandmooduli loendisse, kus saate selle valida ja klõpsata Okei.
MÄRKUS. Mõlemat protseduuri ei pea te tegema! Valige üks või teine olenevalt sellest, kas pärast lisandmooduli VBA projekti nime muutmist taaskäivitasite Exceli või mitte.
Nüüd saate lisandmooduli funktsioone kasutada töövihiku mis tahes moodulis, milles viite määrate, ja Visual Basic Editor tunneb need ära …
Kui vaatate Projektiuurija näete, et töövihikule on viide lisatud …
Oluline on meeles pidada, et viite lisamine kehtib ainult selle töövihiku kohta, mille jaoks selle toimingu tegite. Peate seda tegema iga erineva töövihiku puhul, milles soovite oma lisandmooduli funktsioone kasutada.
Teave failide levitamise kohta
Kui lisate viite lisandmoodulile, on see link pistikprogrammile failiga ühendatud. Kui teisaldate faili teise arvutisse või levitate selle oma töökaaslastele, ootab töövihik oma arvutitest samas kohas sama lisandmooduli. Samuti, kui lisandmoodul teisaldatakse või kustutatakse arvutist, ei leia töövihik seda ja teie kood ei tööta.
Mõned inimesed soovitavad, et fail ja sellega seotud lisandmoodul asuksid alati samas kaustas, et vältida võimalikke probleeme. Probleemi lahendamiseks saate muidugi viite uuesti määrata.
Võtke neid tegureid arvesse ja teil pole probleeme.