No MS Excel, o VBA (Visual Basic for Applications) é geralmente usado para automatizar tarefas. Mas, às vezes, ao executar códigos ou macros VBA nas planilhas, você pode encontrar vários erros. Um desses erros de tempo de execução é “Compile error: ByRef argument type mismatch.” Ele normalmente ocorre quando o tipo de dados do argumento não corresponde ao tipo de dados do parâmetro do código.

Abaixo, explicarei por que esse erro ocorre e como corrigi-lo rapidamente.
O que causa o erro de planilha “Incompatibilidade de tipo de argumento ByRef” no VBA?
Esse erro de tempo de execução no Excel pode ocorrer por vários motivos, como:
- Tipos de dados de variáveis incompatíveis.
- Parâmetros ByRef incorretos.
- Matrizes passadas incorretamente nas macros.
- Pasta de trabalho ou planilha corrompida.
- Referências de objetos ausentes frequentemente causam confusão.
Depois de conhecer os principais fatores por trás desse erro de VBA, é hora de superar essa situação aplicando as melhores práticas.
Como corrigir o erro de compilação do VBA no Excel: “Incompatibilidade de tipo de argumento ByRef”?
A seguir, apresentamos algumas soluções alternativas que você pode tentar para corrigir o erro de compilação no Microsoft Excel.
Navegação rápida:
- Renomear a variável
- Verificar a incompatibilidade de tipo de dados
- Alterar as configurações de segurança da macro
- Usar ByVal em vez de ByRef
- Reparar a pasta de trabalho corrompida
- Verificar se há objetos excluídos em um arquivo VBA ou macro
- Desinstalar as atualizações do Office
- Copiar todos os dados para uma nova pasta de trabalho
Dica 1 – Renomear a variável
Renomear a variável é uma excelente solução alternativa que pode funcionar para resolver o problema. Isso pode ajudar a eliminar o problema relacionado ao mesmo nome no módulo.
Então, vamos renomear a variável:
- Vá para o menu e clique em Depurar.
- Em seguida, clique em Compilar projeto VBA para permitir que seu código seja compilado.
Dica 2 – Verifique a incompatibilidade de tipos de dados
Além de variáveis incompatíveis, a incompatibilidade de tipos de dados em procedimentos geralmente causa o erro de planilha “Incompatibilidade de tipo de argumento ByRef” no VBA. Tudo o que você precisa fazer é alinhar os tipos de dados corretamente no código VBA para que ele seja executado adequadamente. Além disso, sempre use declarações explícitas.
Leia também: Como corrigir o erro de compilação: Procedimento externo inválido no VBA do Excel?
Dica 3 – Altere as configurações de segurança de macros
Se as macros estiverem restritas nas configurações de segurança de macros, isso pode causar esse erro. Nesse caso, você pode verificar e alterar as configurações de macros.
Veja como fazer isso:
- Abra o MS Excel.
- Vá para Arquivo >> Opções >> Central de Confiabilidade.
- Em seguida, clique em Central de Confiabilidade e escolha Configurações da Central de Confiabilidade.

- Por fim, clique em Configurações de Macro >> Habilitar todas as macros e clique em OK.
Dica 4 – Use ByVal em vez de ByRef
O erro de compilação VBA do Excel, “erro de incompatibilidade de tipo de argumento ByRef”, pode ocorrer devido a parâmetros ByRef incorretos na macro ou na sintaxe. Você pode usar a função ByVal em vez de ByRef para solucionar o problema. O uso de ByVal melhora a segurança do código.
Dica 5 – Repare a Pasta de Trabalho Corrompida
Uma pasta de trabalho ou planilha do Excel corrompida é uma das principais causas de vários erros, incluindo incompatibilidade de tipo de argumento. Se isso ocorreu devido à corrupção do arquivo, você pode usar o utilitário Abrir e Reparar do Excel.
Para usar essa ferramenta, siga estas etapas:
- Abra a planilha do Excel, clique na guia Arquivo >> Abrir.
- Em seguida, clique na opção Procurar para selecionar o arquivo afetado.
- A caixa de diálogo Abrir será exibida. Clique no arquivo corrompido.
- Expanda a seta ao lado de Abrir >> clique em Abrir e Reparar.

- Clique no botão Reparar.

Para problemas graves de corrupção de arquivo, recomenda-se o uso de um Excel reparo software. Ele pode reparar arquivos XLS ou XLSX gravemente corrompidos e recuperar todos os componentes armazenados neles.
Etapas para usar a Ferramenta de Reparo do MS Excel:
Etapa 1 - Baixe e instale o Stellar Reparar para Excel seguindo o assistente de instalação.

Etapa 2 – Após a instalação, inicie a ferramenta de reparo e navegue até o arquivo Excel que deseja reparar.

Etapa 3 – Agora selecione o arquivo Excel que deseja reparar e clique no botão 'Repair'.

Etapa 4 – Espere até que o processo de reparo termine.

Etapa 5 – Uma vez feito isso, visualize e verifique o arquivo do Excel reparado e clique no botão 'Save'.

Dica 6 – Verifique se há objetos excluídos em um código VBA ou macro
Às vezes, essa mensagem de aviso ocorre se um objeto que você está chamando no código VBA não estiver disponível, estiver inacessível ou tiver sido excluído. Basta verificar seu código VBA com a janela do Editor do Visual Basic para identificar quaisquer objetos ausentes ou removidos na macro.
Embora a depuração na planilha possa ajudar você a identificar e corrigir rapidamente os erros de VBA.
Leia também: Erro de compilação de macro do Excel: Não foi possível encontrar o projeto ou a biblioteca – 2025!
Dica 7 – Corrija o erro de compilação do Excel “Incompatibilidade do tipo de argumento ByRef” desinstalando as atualizações do Office
Outra solução eficaz que você pode tentar é desinstalar as atualizações do Office instaladas recentemente. É possível que o problema tenha ocorrido devido a essas atualizações.
Portanto, para corrigir isso, siga as etapas abaixo e desinstale as atualizações do Office com cuidado:
- Abra o Painel de Controle.

- Vá para Programas >> clique em Programas e Recursos.

- Procure por “Exibir atualizações instaladas” >> clique nas atualizações do Office escolhidas.
- Depois disso, clique com o botão direito do mouse e clique em Desinstalar.
- Agora, siga as instruções na tela para concluir o processo de desinstalação.
- Quando o processo for concluído, reinicie o sistema.
Dica 8 – Copiar todos os dados para uma nova pasta de trabalho
Se nenhuma das soluções acima funcionou para você, tente copiar todos os dados de uma pasta de trabalho antiga para uma nova. Essa solução corrigirá a incompatibilidade do tipo de argumento “por referência” no VBA.
Para isso, você precisa:
- Abrir o Excel >> criar uma pasta de trabalho em branco ou nova.
- Selecionar e copiar todos os dados do arquivo corrompido.

- Agora, cole-os em um novo documento do Excel >> salve o novo arquivo.
E pronto!
Perguntas frequentes exclusivas:
O que significa ByRef em VBA?
ByRef significa “Por Referência“. É usado ao passar argumentos para um procedimento (Sub ou Function). Além disso, permite que o método altere a variável original diretamente.
Como passar argumentos para uma função VBA?
Você pode passar um argumento por valor em um código VBA se incluir a palavra-chave ‘ByVal’ na declaração de um procedimento. Os argumentos passados por valor consomem de 2 a 16 bytes no procedimento, dependendo do tipo de dados do argumento.
Qual é o argumento padrão passado em VBA?
ByRef é o argumento padrão passado em VBA, diferentemente do Visual Basic.
O que é um erro de incompatibilidade de tipo em VBScript?
O erro de incompatibilidade de tipo ocorre quando a função não entende o formato de um número que está sendo convertido.
Como resolver um erro de compilação no Excel VBA?
Para resolver um erro de compilação no Excel VBA, tente as dicas abaixo:
- Desative e ative o suplemento Solver.
- Remova os componentes VBA do Solver corrompidos (se existirem).
Leia também: Correção para o erro de compilação do Excel: argumento não opcional – Pare a falha!
Resumindo
Você pode encontrar o erro de compilação do Excel “Incompatibilidade de tipo do argumento ByRef” ao usar uma macro. No entanto, você pode tentar os métodos discutidos nesta postagem para corrigir o erro.
Se o erro ocorrer devido à corrupção do arquivo do Excel, use a Ferramenta de Reparo do Excel. Ela ajuda a reparar o arquivo corrompido e recuperar todos os dados sem alterar a formatação original.
Consequentemente, seus projetos VBA permanecem estáveis e profissionais.


