Temos uma pasta de trabalho habilitada para macro (versão 2010) que muitas pessoas usam. Algumas dessas pessoas possuem macros em suas pastas de trabalho Personal.xlsb. Temos uma situação em que a macro na pasta de trabalho compartilhada tem o mesmo nome de uma macro nas pastas de trabalho pessoais, mas faz coisas ligeiramente diferentes.
Para evitar a execução da macro errada, gostaria de padronizar a pasta de trabalho compartilhada para executar macros desta pasta de trabalho em vez de todas as pastas de trabalho abertas. Espero colocar algo em WorkBook_Open()
, mas o quê?
Existe uma maneira de alterar a opção padrão de macros em: All Open Workbooks
to This Workbook
?
Responder1
Vocês podem simplesmente renomear a macro na pasta de trabalho compartilhada e substituir as instâncias dessa macro naquela pasta de trabalho específica?
Responder2
Se eu renomear os módulos que contêm as sub-rotinas, posso especificar exatamente qual sub chamar.
Exemplo:
No Modlue1, renomeado para LocalModule1, tenho:
Sub TestDupe()
Call LocalModule1.DuplicateName
End Sub
Public Sub DuplicateName()
ActiveSheet.UsedRange
MsgBox ("new mod 1")
End Sub
No Module2, renomeado para LocalModule2, eu tenho
Public Sub DuplicateName()
ActiveSheet.UsedRange
MsgBox ("mod 2")
End Sub
Ao alterar o qualificador na chamada de LocalModule1
para LocalModule2
, agora posso ditar qual sub-rotina de mesmo nome executar.