Como padronizar macros para serem executadas nesta pasta de trabalho, NÃO em todas as pastas de trabalho abertas?

Como padronizar macros para serem executadas nesta pasta de trabalho, NÃO em todas as pastas de trabalho abertas?

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 Workbooksto 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 LocalModule1para LocalModule2, agora posso ditar qual sub-rotina de mesmo nome executar.

informação relacionada