Kopēt VBA moduli - Excel padomi

Satura rādītājs

Mišela raksta:

Mēs esam izstrādājuši Excel lietojumprogrammu, kas ģenerē unikālu Excel darbgrāmatu izplatīšanai katram no 54 brokeriem. Katrā no 54 Excel darbgrāmatām, kas tiek izplatītas brokeriem, man jāiekļauj vairāki VBA makro. Kā es varu nokopēt VBA moduli no sākotnējās Excel darbgrāmatas uz katru jauno Excel darbgrāmatu?

Šis ir lielisks jautājums, Mišel. Lai kopētu darblapu jaunā darbgrāmatā, komandu Sheets () ir viegli izmantot. Kopēt komandu, bet moduli kopēt jaunajā darbgrāmatā nav tik vienkārši. Risinājums ietver moduļa eksportēšanu vienreiz un pēc tam importēšanu katrā no 54 brokera darbgrāmatām, kad tās ir pabeigtas. Šeit ir daļa no jūsu koda ar risinājumu.

' 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 un VBE.ActiveProject.VBComponents … Importa komandas rūpējas par makro nokopēšanu uz jaunajām grāmatām.

Programmā Excel 2002 un jaunākās versijās jums skaidri jāļauj makro pievienot kodu darbgrāmatai. Dodieties uz Rīki, Makro, Drošība. Noklikšķiniet uz 2. cilnes: Uzticami izdevēji. Apakšējā kreisajā stūrī izvēlieties Visu pamata projekta uzticēšanās piekļuve. Programmā Excel 2007 dodieties uz Office ikonu, Excel opcijas, Uzticamības centrs, Uzticamības centra iestatījumi, Makro iestatījumi un izvēlieties Uzticēšanās piekļuve VBA projekta objekta modelim.

Uzmanību

Komandas moduļu eksportēšanai un importēšanai, kā arī komandas jaunu makro ierakstīšanai esošā darbgrāmatā kopā tiek dēvētas par Visual Basic Extensibility vai VBE. Ja jūsu darbgrāmatā tiek izmantotas kādas VBE komandas, pastāv liela varbūtība, ka darbgrāmatu atzīmēs vīrusu skeneri. Tas ir kļūdaini pozitīvs rezultāts. Iespējamā vīrusa nosaukumā gandrīz vienmēr ir nosaukums "heiristisks". Tas nozīmē, ka skeneris redz DLL zvanus, kas šķiet aizdomīgi, taču tie ne vienmēr atbilst visiem zināmiem vīrusiem. Parasti jūs varat rakstīt pretvīrusu programmatūras ražotājam un pieteikties, lai jūsu Excel darbgrāmata būtu balta, pēc tam, kad esat izskaidrojis, ko jūs to darāt un kāpēc tas ir labi.

Interesanti raksti...