A chave para o seu problema é a caixa de mensagem "Erro de automação. Falha catastrófica" .
Não existe um único diagnóstico para ele, mas pode ser ...
- Caso 1
Se uma pasta de trabalho estiver tentando executar uma macro que contenha objetos, ela não será incluída na seção de referências do editor do VBA, esse tipo de erro poderá ocorrer.
Por exemplo, se é necessário que uma DLL específica seja registrada corretamente no PC. Se essas DLLs estiverem no seu computador, a pasta de trabalho estará bem, mas em outro PC sem as DLLs, isso acontecerá.
Qualquer projeto incluirá o seguinte como padrão:
Visual Basic For Applications
Microsoft Excel x.0 Object Library
OLE Automation
Microsoft Office x.0 Object Library
and possibly if a form has ever been added -
Microsoft Forms 2.0 Object Library
Onde x
é a versão do Excel.
Você abriu e modificou a macro em outro PC antes de executá-la?
É isso, então as referências foram atualizadas para a versão do outro sistema e não foram encontradas no seu sistema.
- Caso 2
Uma de suas UDFs está causando o problema. Recrie o problema e verifique a função destacada em amarelo.
Em conformidade com as imagens que você postou, o problema está em Sumbytext(rg as Range,ltr as String)as Double
. Você precisa:
- Rastreie a lógica do UDF, passo a passo, para descobrir onde ela pode estar falhando.
- No intervalo nomeado "List_HolAbbr" são sempre valores? Qual?
- A UDF recebe um intervalo na variável
rg
. É sempre um intervalo válido? - Como eles usam valores inteiros, por que
Sumbytest
eMidResult
são definidos como Double?