Kopiera VBA-modulen - Excel-tips

Innehållsförteckning

Michelle skriver:

Vi har utvecklat en Excel-applikation som genererar en unik Excel-arbetsbok för distribution till var och en av 54 mäklare. Jag måste inkludera flera VBA-makron i var och en av de 54 Excel-arbetsböckerna som distribueras till mäklarna. Hur kan jag kopiera en VBA-modul från den ursprungliga Excel-arbetsboken till varje ny Excel-arbetsbok?

Det här är en bra fråga, Michelle. Det är enkelt att använda Sheets (). Kopiera kommandot för att kopiera ett kalkylblad till en ny arbetsbok, men det är inte lika enkelt att kopiera en modul till den nya arbetsboken. Lösningen innebär att du exporterar modulen en gång och sedan importerar den till var och en av dina 54 mäklararböcker när de är färdiga. Här är en del av din kod 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 och VBE.ActiveProject.VBComponents … Importkommandon tar hand om att makron kopieras till de nya böckerna.

I Excel 2002 och senare måste du uttryckligen tillåta att ett makro lägger till kod i en arbetsbok. Gå till Verktyg, Makro, Säkerhet. Klicka på den andra fliken: Betrodda utgivare. I det nedre vänstra hörnet väljer du Tillträdesåtkomst till Visual Basic Project. I Excel 2007, gå till Office-ikon, Excel-alternativ, Trust Center, Trust Center-inställningar, makroinställningar och välj Trust-åtkomst till VBA-projektobjektmodellen.

Varning

Kommandona för att exportera och importera moduler samt kommandon för att skriva nya makron i en befintlig arbetsbok är gemensamt kända som Visual Basic Extensibility eller VBE. Om din arbetsbok använder VBE-kommandon är det stor chans att arbetsboken kommer att flaggas av virusscannrar. Detta är falskt positivt. Namnet på det påstådda viruset har nästan alltid "heuristik" i namnet. Det betyder att skannern ser DLL-samtal som verkar misstänkta, men som inte nödvändigtvis matchar några kända virus. Du kan vanligtvis skriva till tillverkaren av antivirusprogrammet och ansöka om att få din Excel-arbetsbok vitlistad efter att ha förklarat vad du gör det och varför det är bra att göra.

Intressanta artiklar...