Cum să utilizați funcțiile de completare Excel în VBA

Cuprins:

Anonim

Dacă ați construit un program de completare pentru a conține funcțiile personalizate Excel, este posibil să fi descoperit că, deși funcțiile funcționează bine într-o foaie de lucru Excel, nu le puteți utiliza în procedurile VBA din alte registre de lucru. Este ca și cum Editorul Visual Basic nu poate vedea lor. Ei bine, asta pentru că nu se poate! Acest articol explică modul în care puteți remedia problema.

În primul rând, ia în considerare dacă asta este cu adevărat ceea ce vrei să faci. Suplimentele sunt destinate în principal pentru a adăuga funcționalități suplimentare registrelor dvs. de lucru. Când încărcați un program de completare Excel, funcționalitatea acestuia devine imediat disponibilă pentru toate registrele de lucru. Dacă creați o procedură VBA care depinde de o funcție personalizată conținută într-un alt registru de lucru, acel alt registru de lucru ar trebui să fie deschis ori de câte ori doriți să utilizați funcția sa. Același lucru este valabil și pentru o funcție personalizată într-un supliment. Dacă programul de completare este încărcat, este în regulă, dar presupunând că vă trimiteți prin e-mail registrul de lucru altcuiva sau îl distribuiți grupului dvs. de lucru. Trebuie să vă amintiți să distribuiți și Add-In-ul. Ar putea fi mai simplu să includeți o copie a funcției în codul registrului de lucru, astfel încât procedurile dvs. să aibă acces direct la acesta (poate fi necesar să Funcția privată sau schimbați numele pentru a evita conflictele de denumire).

Nu spun că nu o faceți. Trebuie doar să vă gândiți mai întâi la acest lucru și, dacă sunteți sigur că suplimentul va fi disponibil, atunci continuați. Iată cum…

Când apare problema?

Scriu o procedură pentru unul dintre registrele mele de lucru. În procedura mea vreau să folosesc RemoveSpaces funcție pe care am creat-o cu ceva timp în urmă și am salvat-o în Funcțiile lui Martin Supliment care este instalat în prezent în copia mea de Excel. Dar când încerc să rulez procedura mea, apar o eroare.

Editorul Visual Basic se comportă ca și cum funcția nu ar exista, dar știu că există și o pot vedea dacă mă uit la codul din Add-In. De fapt, codul funcționează bine dacă îl rulez din interiorul programului meu de completare.

Am nevoie de Editorul Visual Basic pentru a putea vedea funcțiile din Add-In-ul meu din interiorul modulului de cod al unui diferit registru de lucru.

Oferiți suplimentului dvs. un nume de proiect VBA

Fiecare registru de lucru are un Numele proiectului VBA. Se numeste VBAProject. Puteți schimba numele respectiv dacă doriți, dar în mod normal nu mă deranjez, pentru că în mod normal nu contează.

V-ați întrebat vreodată de ce toate registrele de lucru afișate în Project Explorer panoul editorului vizual de bază se numește „VBAProject"? Dacă aveți vreunul dintre programele de completare Microsoft instalate, veți vedea că au un nume diferit. Dezvoltatorii Microsoft și-au dat ToolPak de analiză Completează numele proiectului VBA "funcții".

Primul lucru pe care trebuie să-l faceți este să dați suplimentului dvs. un nume de proiect VBA unic. Acest lucru se datorează faptului că veți face referire la acesta cu acest nume în pasul următor și dacă există mai multe persoane cu același nume, Editorul Visual Basic nu va ști pe care să îl utilizați.

În Project Explorer din panoul selectați numele programului dvs. de completare. Dacă nu este deja deschis, afișați Editorul Visual Basic Fereastra Proprietăți. Veți vedea că există o singură proprietate, Nume. Tastați un alt nume și apăsați introduce. Va trebui să respectați regulile obișnuite de denumire pentru VBA (adică fără caractere ilegale și fără spații). Veți vedea că numele este aplicat imediat în Project Explorer.

Acum salvați modificările în Add-In. Asigurați-vă că programul dvs. de completare este selectat în Project Explorer și alegeți Fișier> Salvare.

Setați o referință la programul de completare

În acest pas, spuneți registrului de lucru în care doriți să utilizați funcțiile programului de completare că acesta există. Faceți acest lucru până la Setarea unei referințe la Add-In. Este posibil să fi întâlnit această tehnică înainte dacă ați dorit să scrieți cod Excel pentru a comunica cu un alt program, cum ar fi Outlook sau Acces.

Dacă este convenabil, reporniți Excel în acest moment. Acest lucru se datorează faptului că programul dvs. de completare redenumit va fi reîncărcat și lista pe care urmează să o vedeți va fi reîmprospătată. Dacă nu este convenabil, nu vă deranjați … citiți paragraful următor și decideți ce doriți să faceți.

Deschideți un modul de cod în registrul de lucru în care doriți să utilizați funcțiile suplimentului, apoi accesați Instrumente> Referințe pentru a deschide Referințe fereastra de dialog în care veți vedea o listă cu toate bibliotecile și alte obiecte (cum ar fi Add-Ins) la care puteți seta o referință. Dacă ați repornit Excel, această listă va fi reîmprospătată și veți putea găsi numele proiectului pe care l-ați dat suplimentului în ultimul pas. Puneți o bifă în caseta de lângă nume și faceți clic pe Bine buton.

Dacă nu ați repornit Excel, va trebui să vă găsiți fișierul Add-In făcând clic pe Naviga butonul de pe Referințe dialog. Aceasta deschide Adăugați referință fereastră. Schimba Fișiere de tip: secțiunea la Fișiere Microsoft Excel (*. Xls; *. Xla) apoi navigați la folderul în care este stocat programul de completare.

Selectați suplimentul și faceți clic pe Deschis. Aceasta adaugă Add-In-ul dvs. la lista în care îl puteți selecta și faceți clic Bine.

NOTĂ: Nu trebuie să faceți ambele proceduri! Alegeți una sau alta în funcție de repornirea sau nu a Excel-ului după modificarea numelui proiectului VBA al programului de completare.

Acum veți putea utiliza funcțiile programului de completare în orice modul din registrul de lucru în care setați referința și vor fi recunoscute de Editorul Visual Basic …

Dacă te uiți la Project Explorer veți vedea că a fost aplicată o referință la registrul de lucru …

Este important să rețineți că adăugarea unei referințe se aplică doar registrului de lucru pentru care ați efectuat această procedură. Va trebui să o faceți pentru fiecare registru de lucru diferit în care doriți să utilizați funcțiile suplimentului.

Despre distribuirea fișierelor dvs.

Când adăugați o referință la un Add-In, acest link către Add-In este „cablat” în fișier. Dacă mutați fișierul pe alt computer sau îl distribuiți colegilor de muncă, registrul de lucru se va aștepta să găsească același program de completare, în același loc, pe computerele lor. De asemenea, dacă suplimentul este mutat sau șters de pe computer, registrul de lucru nu îl va putea găsi și codul dvs. nu va funcționa.

Unii oameni susțin că fișierul și suplimentul asociat trebuie să fie întotdeauna localizate în același folder pentru a evita problemele pe care le-ar putea provoca. Desigur, puteți seta din nou referința pentru a remedia problema.

Țineți cont de acești factori și nu veți avea probleme.