Tenemos un libro habilitado para macros (versión 2010) que usa mucha gente. Algunas de estas personas tienen macros en su libro Personal.xlsb. Tenemos una situación en la que la macro del libro compartido tiene el mismo nombre que una macro de los libros personales, pero hace cosas ligeramente diferentes.
Para evitar ejecutar la macro incorrecta, me gustaría configurar de forma predeterminada el libro compartido para ejecutar macros desde Este libro en lugar de Todos los libros abiertos. Espero colocar algo en WorkBook_Open()
, pero ¿qué?
¿Hay alguna manera de cambiar la opción predeterminada para Macros en: All Open Workbooks
a This Workbook
?
Respuesta1
¿Pueden simplemente cambiar el nombre de la macro en el libro compartido y reemplazar las instancias de esa macro en ese libro específico?
Respuesta2
Si cambio el nombre de los módulos que contienen las subrutinas, puedo especificar exactamente a qué sub llamar.
Ejemplo:
en Modlue1, renombrado a LocalModule1, tengo:
Sub TestDupe()
Call LocalModule1.DuplicateName
End Sub
Public Sub DuplicateName()
ActiveSheet.UsedRange
MsgBox ("new mod 1")
End Sub
En el Módulo2, renombrado como LocalModule2, tengo
Public Sub DuplicateName()
ActiveSheet.UsedRange
MsgBox ("mod 2")
End Sub
Al cambiar el calificador en la llamada de LocalModule1
a LocalModule2
, ahora puedo dictar qué subrutina del mismo nombre ejecutar.