Kopírovať modul VBA - tipy pre Excel

Obsah

Michelle píše:

Vyvinuli sme aplikáciu Excel, ktorá generuje jedinečný zošit programu Excel pre distribúciu každému z 54 sprostredkovateľov. Musím zahrnúť niekoľko makier VBA do každého z 54 zošitov programu Excel, ktoré sa distribuujú sprostredkovateľom. Ako môžem skopírovať modul VBA z pôvodného zošita Excel do každého nového zošita Excel?

To je skvelá otázka, Michelle. Pomocou príkazu Sheets (). Copy sa dá skopírovať pracovný hárok do nového zošita, ale kopírovanie modulu do nového zošita nie je také ľahké. Riešenie spočíva v jednom exportovaní modulu a následnom importe do každého z vašich 54 zošitov sprostredkovateľov. Tu je časť vášho kódu s riešením.

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

Príkazy VBE.ActiveProject.VBComponents.Export a VBE.ActiveProject.VBComponents… Import sa postarajú o kopírovanie makier do nových kníh.

V programe Excel 2002 a novších musíte výslovne povoliť makru pridať kód do zošita. Prejdite do ponuky Nástroje, Makro, Zabezpečenie. Kliknite na 2. kartu: Dôveryhodní vydavatelia. V ľavom dolnom rohu vyberte položku Trust Access to Visual Basic Project. V programe Excel 2007 prejdite na ikonu Office, Možnosti programu Excel, Centrum dôveryhodnosti, Nastavenia centra dôveryhodnosti, Nastavenia makra a vyberte Prístup dôveryhodnosti k objektovému modelu projektu VBA.

Pozor

Príkazy na export a import modulov, ako aj príkazy na písanie nových makier v existujúcom zošite sú súhrnne známe ako Visual Basic Extensibility alebo VBE. Ak váš zošit používa akékoľvek príkazy VBE, je vysoká pravdepodobnosť, že bude zošit označený antivírusovými programami. Toto je falošný poplach. Názov údajného vírusu má takmer vždy v názve „heuristický“. To znamená, že skener sleduje hovory DLL, ktoré sa zdajú podozrivé, ale ktoré sa nevyhnutne nezhodujú so žiadnymi známymi vírusmi. Spravidla môžete napísať výrobcovi antivírusového softvéru a požiadať, aby bol váš zošit Excel uvedený na bielom zozname po vysvetlení, čo robíte a prečo je dobré robiť.

Zaujímavé články...