Zkopírujte modul VBA - tipy pro Excel

Obsah

Michelle píše:

Vyvinuli jsme aplikaci Excel, která generuje jedinečný sešit aplikace Excel pro distribuci každému z 54 makléřů. Musím zahrnout několik maker VBA do každého z 54 sešitů aplikace Excel, které jsou distribuovány makléřům. Jak mohu zkopírovat modul VBA z původního sešitu aplikace Excel do každého nového sešitu aplikace Excel?

To je skvělá otázka, Michelle. Pomocí příkazu Sheets (). Copy lze zkopírovat list do nového sešitu, ale není tak snadné zkopírovat modul do nového sešitu. Řešení zahrnuje export modulu jednou a následný import do každého z vašich 54 sešitů brokerů, jakmile jsou dokončeny. Zde je část vašeho kódu s řeš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")

Příkazy VBE.ActiveProject.VBComponents.Export a VBE.ActiveProject.VBComponents… Import se postarají o kopírování maker do nových knih.

V aplikaci Excel 2002 a novější musíte explicitně povolit makru přidat kód do sešitu. Přejděte na Nástroje, Makro, Zabezpečení. Klikněte na 2. kartu: Důvěryhodní vydavatelé. V levém dolním rohu zvolte Trust Access to Visual Basic Project. V aplikaci Excel 2007 přejděte na ikonu Office, Možnosti aplikace Excel, Centrum zabezpečení, Nastavení centra zabezpečení, Nastavení maker a zvolte Přístup důvěryhodnosti k objektovému modelu projektu VBA.

Pozor

Příkazy pro export a import modulů, stejně jako příkazy pro psaní nových maker v existujícím sešitu jsou souhrnně označovány jako Visual Basic Extensibility nebo VBE. Pokud váš sešit používá nějaké příkazy VBE, existuje velká šance, že bude sešit označen antivirovými programy. To je falešně pozitivní. Název údajného viru má téměř vždy „heuristický“ název. To znamená, že skener vidí volání DLL, která se zdají podezřelá, ale která nemusí nutně odpovídat žádným známým virům. Obvykle můžete napsat výrobci antivirového softwaru a požádat o zařazení vašeho sešitu aplikace Excel na bílou listinu poté, co vysvětlíte, co děláte a proč je dobré dělat.

Zajímavé články...