Copiați modulul VBA - Sfaturi Excel

Cuprins

Michelle scrie:

Am dezvoltat o aplicație Excel care generează un registru de lucru Excel unic pentru distribuire către fiecare dintre cei 54 de brokeri. Trebuie să includ mai multe macrocomenzi VBA în fiecare dintre cele 54 de registre Excel care sunt distribuite către brokeri. Cum pot copia un modul VBA din registrul de lucru Excel original în fiecare nou registru de lucru Excel?

Aceasta este o întrebare grozavă, Michelle. Este ușor de utilizat Sheets (). Comanda Copy pentru a copia o foaie de lucru într-un nou registru de lucru, dar nu este la fel de ușor să copiați un modul în noul registru de lucru. Soluția implică exportul modulului o singură dată, și apoi importarea acestuia în fiecare dintre cele 54 de cărți de lucru ale brokerilor pe măsură ce acestea sunt finalizate. Iată o parte din codul dvs. cu soluția.

' Delete any old stray copies of the module1 On Error Resume Next Kill ("C:MrXL1.bas") On Error GoTo 0 ' Export Module 1 ActiveWorkbook.VBProject.VBComponents("module1").Export ("c:MrXL1.bas") For x = 1 to 54 ThisBroker = Sheets("BrokerList").range("A" & x).value '… customization of plan omited for brevity Sheets(Array("Menu", "Plan")).Copy NBName = ActiveWorkbook.Name ' new book name ' Import Module 1 to this new book Application.VBE.ActiveVBProject.VBComponents.Import ("c:MrXL1.bas") ActiveWorkbook.SaveAs Filename:=ThisBroker ActiveWorkbook.Close Next x Kill ("C:MrXl1.bas")

VBE.ActiveProject.VBComponents.Export și VBE.ActiveProject.VBComponents … Comenzile de import se ocupă de copierea macro-urilor în noile cărți.

În Excel 2002 și versiuni mai noi, trebuie să permiteți în mod explicit unei macro să adauge cod într-un registru de lucru. Accesați Instrumente, Macro, Securitate. Faceți clic pe a doua filă: Editori de încredere. În stânga jos, alegeți Trust Trust Access to Visual Basic Project. În Excel 2007, accesați pictograma Office, Opțiuni Excel, Centrul de încredere, Setări centru de încredere, Setări macro și alegeți Acces de încredere la modelul de obiect al proiectului VBA.

Prudență

Comenzile pentru exportul și importul modulelor, precum și comenzile pentru tastarea noilor macrocomenzi într-un registru de lucru existent sunt cunoscute în mod colectiv ca Extensibilitate Visual Basic sau VBE. Dacă registrul dvs. de lucru folosește comenzi VBE, există mari șanse ca registrul de lucru să fie semnalat de scanerele de viruși. Acesta este un fals pozitiv. Numele presupusului virus are aproape întotdeauna „euristic” în nume. Aceasta înseamnă că scanerul vede apeluri DLL care par suspecte, dar care nu corespund neapărat niciunui virus cunoscut. De obicei, puteți scrie producătorului software-ului antivirus și puteți solicita ca lista de lucru Excel să apară pe lista albă după ce ați explicat ce faceți și de ce este un lucru bun de făcut.

Articole interesante...