ThisWorkbook
e SheetX
objetos são módulos especiais "document" class ; macros são mais facilmente expostas em módulos padrão , então ao invés de colá-lo em todos os lugares, adicione um novo módulo de código (.bas) e cole-o lá.
A maneira mais fácil de adicionar um novo módulo de código é clicar com o botão direito do mouse em qualquer lugar no Explorador de Projetos (Ctrl + R) e selecionar Inserir > Módulo .
O próximo problema é que o procedimento é Private
. "Particular" significa que qualquer código que precise ver e chamar esse procedimento deve estar no mesmo escopo - ou seja, no mesmo módulo. Faça Public
e você poderá ligar de qualquer lugar.
O próximo problema, são os parâmetros. A partir da implementação, parece que Sh
deve ser um objeto Worksheet
e Target
é um objeto Range
: para executar o procedimento, você precisará fornecer os parâmetros.
Existem muitas maneiras de fazer isso.
Um deles é abrir o painel imediato (Ctrl + G) e chamá-lo diretamente:
Module1.Workbook_TwoWayMatch Sheet42, Sheet42.Range("Z123")
É claro que os parâmetros reais que você passará variam dependendo do que você está tentando alcançar, mas espero que você entenda a ideia.