Kopier VBA-modul - Excel-tips

Innholdsfortegnelse

Michelle skriver:

Vi har utviklet et Excel-program som genererer en unik Excel-arbeidsbok for distribusjon til hver av 54 meglere. Jeg må inkludere flere VBA-makroer i hver av de 54 Excel-arbeidsbøkene som blir distribuert til meglerne. Hvordan kan jeg kopiere en VBA-modul fra den originale Excel-arbeidsboken til hver nye Excel-arbeidsbok?

Dette er et flott spørsmål, Michelle. Det er enkelt å bruke arkene () .Kopier kommandoen for å kopiere et regneark til en ny arbeidsbok, men det er ikke like enkelt å kopiere en modul til den nye arbeidsboken. Løsningen innebærer å eksportere modulen en gang, og deretter importere den til hver av dine 54 meglerarbeidsbøker når de er ferdige. Her er en del av koden din med løsningen.

' 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 og VBE.ActiveProject.VBComponents … Importkommandoer tar seg av å få makroene kopiert til de nye bøkene.

I Excel 2002 og nyere må du eksplisitt tillate at en makro legger til kode i en arbeidsbok. Gå til Verktøy, Makro, Sikkerhet. Klikk på den andre kategorien: Trusted Publishers. Velg Tillit til Visual Basic Project nederst til venstre. I Excel 2007, gå til Office Icon, Excel Options, Trust Center, Trust Center Settings, Macro Settings, og velg Trust access to the VBA project object model.

Forsiktighet

Kommandoene for å eksportere og importere moduler, samt kommandoene for å skrive inn nye makroer i en eksisterende arbeidsbok er samlet kjent som Visual Basic Extensibility eller VBE. Hvis arbeidsboken din bruker noen VBE-kommandoer, er det stor sjanse for at arbeidsboken blir flagget av virusskannere. Dette er falskt positivt. Navnet på det påståtte viruset har nesten alltid "heuristisk" i navnet. Dette betyr at skanneren ser DLL-anrop som virker mistenkelige, men som ikke nødvendigvis samsvarer med noen kjente virus. Du kan vanligvis skrive til produsenten av antivirusprogramvaren og søke om å få Excel-arbeidsboken din oppført etter å ha forklart hva du gjør det, og hvorfor det er en god ting å gjøre.

Interessante artikler...