Michelle skriver:
Vi har udviklet en Excel-applikation, der genererer en unik Excel-projektmappe til distribution til hver af 54 mæglere. Jeg skal medtage flere VBA-makroer i hver af de 54 Excel-projektmapper, der distribueres til mæglerne. Hvordan kan jeg kopiere et VBA-modul fra den originale Excel-projektmappe til hver nye Excel-projektmappe?
Dette er et godt spørgsmål, Michelle. Det er nemt at bruge arkene () .Kommandoen Kopiér for at kopiere et regneark til en ny projektmappe, men det er ikke så let at kopiere et modul til den nye projektmappe. Løsningen indebærer at eksportere modulet en gang og derefter importere det til hver af dine 54 mæglerarbejdsbøger, når de er færdige. Her er en del af din kode 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 sørger for at kopiere makroerne til de nye bøger.
I Excel 2002 og nyere skal du eksplicit tillade, at en makro føjer kode til en projektmappe. Gå til Værktøjer, Makro, Sikkerhed. Klik på 2. fane: Trusted Publishers. Vælg Trust Access to Visual Basic Project i nederste venstre hjørne. I Excel 2007 skal du gå til Office-ikon, Excel-indstillinger, Trust Center, Trust Center-indstillinger, Makroindstillinger, og vælge Tillidsadgang til VBA-projektobjektmodellen.
Advarsel
Kommandoerne til at eksportere og importere moduler samt kommandoerne til at skrive nye makroer i en eksisterende projektmappe er samlet kendt som Visual Basic Extensibility eller VBE. Hvis din projektmappe bruger VBE-kommandoer, er der stor chance for, at projektmappen bliver markeret af virusscannere. Dette er en falsk positiv. Navnet på den påståede virus har næsten altid "heuristisk" i navnet. Dette betyder, at scanneren ser DLL-opkald, der virker mistænkelige, men som ikke nødvendigvis matcher kendte vira. Du kan normalt skrive til producenten af antivirussoftwaren og ansøge om at få din Excel-projektmappe hvidliste efter at have forklaret, hvad du laver det, og hvorfor det er en god ting at gøre.