Copiar módulo VBA - Consejos de Excel

Tabla de contenido

Michelle escribe:

Hemos desarrollado una aplicación de Excel que genera un libro de trabajo de Excel único para distribuirlo a cada uno de los 54 corredores. Necesito incluir varias macros de VBA en cada uno de los 54 libros de Excel que se distribuyen a los corredores. ¿Cómo puedo copiar un módulo VBA del libro de Excel original a cada nuevo libro de Excel?

Esta es una gran pregunta, Michelle. Es fácil usar el comando Hojas (). Copiar para copiar una hoja de trabajo a un nuevo libro de trabajo, pero no es tan fácil copiar un módulo en el nuevo libro de trabajo. La solución implica exportar el módulo una vez y luego importarlo a cada uno de los 54 libros de trabajo del agente a medida que se completan. Aquí hay una parte de su código con la solución.

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

Los comandos VBE.ActiveProject.VBComponents.Export y VBE.ActiveProject.VBComponents… Import se encargan de copiar las macros en los nuevos libros.

En Excel 2002 y versiones posteriores, debe permitir explícitamente que una macro agregue código a un libro. Vaya a Herramientas, Macro, Seguridad. Haga clic en la segunda pestaña: Editores de confianza. En la parte inferior izquierda, elija Trust Access to Visual Basic Project. En Excel 2007, vaya a Icono de Office, Opciones de Excel, Centro de confianza, Configuración del centro de confianza, Configuración de macros y elija Confiar en el acceso al modelo de objetos del proyecto de VBA.

Precaución

Los comandos para exportar e importar módulos, así como los comandos para escribir nuevas macros en un libro de trabajo existente, se conocen colectivamente como Extensibilidad de Visual Basic o VBE. Si su libro de trabajo utiliza algún comando VBE, existe una alta probabilidad de que los escáneres de virus marquen el libro de trabajo. Este es un falso positivo. El nombre del presunto virus casi siempre tiene "heurística" en el nombre. Esto significa que el escáner está viendo llamadas DLL que parecen sospechosas, pero que no necesariamente coinciden con ningún virus conocido. Por lo general, puede escribirle al fabricante del software antivirus y solicitar que su libro de Excel aparezca en la lista blanca después de explicar lo que está haciendo y por qué es bueno hacerlo.

Articulos interesantes...