Kopieer VBA-module - Excel-tips

Inhoudsopgave

Michelle schrijft:

We hebben een Excel-applicatie ontwikkeld die een unieke Excel-werkmap genereert voor distributie naar elk van de 54 makelaars. Ik moet verschillende VBA-macro's opnemen in elk van de 54 Excel-werkmappen die aan de makelaars worden verspreid. Hoe kan ik een VBA-module van de originele Excel-werkmap naar elke nieuwe Excel-werkmap kopiëren?

Dit is een geweldige vraag, Michelle. Het is gemakkelijk om de opdracht Sheets (). Copy te gebruiken om een ​​werkblad naar een nieuwe werkmap te kopiëren, maar het is niet zo eenvoudig om een ​​module naar de nieuwe werkmap te kopiëren. De oplossing omvat het één keer exporteren van de module en het vervolgens importeren in elk van uw 54 brokerwerkmappen wanneer ze zijn voltooid. Hier is een deel van uw code met de oplossing.

' 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")

De VBE.ActiveProject.VBComponents.Export en VBE.ActiveProject.VBComponents… Import-opdrachten zorgen ervoor dat de macro's naar de nieuwe boeken worden gekopieerd.

In Excel 2002 en nieuwer moet u expliciet toestaan ​​dat een macro code aan een werkmap toevoegt. Ga naar Extra, Macro, Beveiliging. Klik op het 2e tabblad: Trusted Publishers. Kies in de linkerbenedenhoek Trust Access to Visual Basic Project. Ga in Excel 2007 naar Office-pictogram, Excel-opties, Vertrouwenscentrum, Vertrouwenscentrum-instellingen, Macro-instellingen en kies Vertrouwde toegang tot het VBA-projectobjectmodel.

Voorzichtigheid

De opdrachten om modules te exporteren en importeren, evenals de opdrachten om nieuwe macro's in een bestaande werkmap te typen, staan ​​gezamenlijk bekend als Visual Basic Extensibility of VBE. Als uw werkmap VBE-opdrachten gebruikt, is de kans groot dat de werkmap wordt gemarkeerd door virusscanners. Dit is een vals positief. De naam van het vermeende virus heeft bijna altijd "heuristisch" in de naam. Dit betekent dat de scanner DLL-oproepen ziet die verdacht lijken, maar die niet noodzakelijk overeenkomen met bekende virussen. Meestal kunt u naar de fabrikant van de antivirussoftware schrijven en een aanvraag indienen om uw Excel-werkmap op de witte lijst te plaatsen nadat u heeft uitgelegd wat u ermee doet en waarom het een goede zaak is.

Interessante artikelen...