Tipos de erros no VBA para Excel

Os usuários frequentemente encontrarão diferentes tipos de erros no VBA. Abaixo, oferecemos várias estratégias para lidar com eles e resolvê-los. Passaremos por técnicas que você pode usar para interrogar seu código durante o teste, bem como métodos de detecção de erros em tempo de execução.

Tipos de erros no VBA para Excel

Testar e rastrear diferentes tipos de erros no código VBA pode ser demorado e frustrante. Não é incomum ouvir programadores. Programação Programação é o processo de escrever instruções para um computador executar. É semelhante a uma receita para humanos. Uma receita contém uma lista de ações que dizem que mais de 30% do tempo é gasto em testes.

Com o tempo, você ficará melhor em evitar erros, mas é improvável que algum dia escreva um código perfeito pela primeira vez. Aprendendo como evitar, lidar com e rastrear erros do VBA, você economizará muito tempo no futuro.

Tipos de erros VBA

Para facilitar as coisas, categorizamos os tipos de erros de codificação em três grupos. Para cada grupo, exploraremos alguns exemplos e, em seguida, discutiremos como você pode investigá-los e resolvê-los.

1. Erros de sintaxe - Uma linha específica de código não foi escrita corretamente

2. Erros de compilação - problemas que acontecem ao juntar linhas de código, embora as linhas individuais de código pareçam fazer sentido

3. Erros de tempo de execução - Quando o código está geralmente correto em princípio, mas uma ação tomada pelo usuário ou os dados que estão sendo usados ​​levam a erros inesperados.

O que são erros de sintaxe?

Os erros de sintaxe são a maneira do VBA de dizer se seu código faz sentido, no mais básico dos níveis. Podemos fazer uma comparação simples com as regras de escrita de uma frase em inglês:

  • Um assunto é obrigatório.
  • É necessário um verbo .
  • É necessária uma letra maiúscula no início.
  • A pontuação é necessária no final.
  • Objetos, adjetivos e outros recursos gramaticais são opcionais.

Jane encontrou 18 erros em seu código VBA .

De maneira semelhante, o VBA impõe certas regras sobre o que é necessário em certas situações. Por exemplo, ao iniciar uma instrução IF condicional básica em seu código, você deve replicar as seguintes regras de sintaxe para a primeira linha de uma instrução IF;

  • Deve começar com If
  • O próximo deve ser um teste lógico , como x> 10
  • Finalmente, deve terminar com a palavra então

Se NumberErrors> 20, então

Se você quebrar as regras de inglês ou VBA acima, sua gramática (inglês) ou sintaxe (VBA) será considerada incorreta.

Como identificar um erro de sintaxe

O editor VBA destaca os erros de sintaxe em vermelho, permitindo que você os identifique e resolva facilmente. Além disso, se você tentar executar seu código ou iniciar uma nova linha, verá a mensagem de erro de sintaxe abaixo.

Erro de sintaxe básico:

Erro de sintaxe básica

Caixa de mensagem de erro de sintaxe:

Caixa de mensagem de erro de sintaxe

Para garantir que as verificações ocorram enquanto você digita, ative a “Verificação automática de sintaxe” no menu Opções.

Verificação automática de sintaxe

Como resolver erros de sintaxe

Erros de sintaxe representam erros na maneira como uma linha específica do código é escrita. Eles devem ser corrigidos antes que você possa executar seu código. Com a experiência, o texto em vermelho será tudo de que você precisa para detectar o erro. Mas se você ainda estiver travado, pesquise online por “if statement syntax vba” ou qualquer variação que atenda às suas necessidades e você encontrará muitos exemplos da linha específica que está tentando escrever.

O que são erros de compilação?

Os erros de compilação referem-se a um grupo mais amplo de erros do VBA, que incluem erros de sintaxe. Erros de compilação também identificam problemas com seu código quando considerado como um todo. A sintaxe de cada linha individual pode estar correta, mas quando colocadas juntas, as linhas do seu código não fazem sentido. Erros de compilação são destacados quando você compila ou executa seu código.

Como identificar um erro de compilação

Quando você executa o código do VBA, os erros de compilação são apresentados em uma caixa de diálogo do VBA conforme os exemplos abaixo.

Alternativamente, se seu projeto for longo ou complexo e envolver várias rotinas, pode ser útil compilar seu código antes de executá-lo. Isso evita situações em que metade do seu código é executado com êxito e, em seguida, um erro aparece. Você pode compilar seu código VBA clicando em Menu Depurar → Compilar Projeto VBA.

Exemplo 1

Um erro de compilação para uma parte "End if" ausente de uma instrução IF. Cada linha individual no código está correta, mas juntas, elas não representam uma instrução IF completa.

Erro de compilação - Exemplo 1

Exemplo 2

Neste exemplo, o processo de compilação do VBA detectou um erro de sintaxe, destacado em vermelho. O VBA indica que o código abaixo não contém um colchete de fechamento na função.

Erro de compilação - Exemplo 2

Exemplo 3

Erros de compilação são comuns ao usar Option Explicit e ocorrem quando uma variável não foi definida explicitamente. Com Option Explicit ativado, uma instrução Dim é necessária para declarar todas as variáveis ​​antes que possam ser usadas em seu código.

Erro de compilação - Exemplo 3

Como resolver erros de compilação

Os erros de compilação do VBA impedirão a execução de rotinas afetadas. Até que você os corrija, seu código não pode ser interpretado corretamente pelo VBA. As caixas de mensagem de erro geralmente fornecem conselhos mais úteis do que erros de sintaxe.

Se não ficar imediatamente óbvio para você qual é o problema da mensagem de erro, tente usar a Central de Ajuda da Microsoft para ter uma ideia de como exatamente sua declaração ou função deve ser escrita. Aqui está um exemplo da mensagem de erro “Bloquear se sem fim se” no site da Microsoft.

Bloquear se sem fim se

O que são erros de tempo de execução?

Depois de corrigir os erros de sintaxe e de compilação, você está pronto para começar a testar ou executar seu código corretamente para ver como ele executa suas ações ou cálculos desejados. Chamamos o período de teste, ou execução ao vivo do código, de “tempo de execução”.

Os erros de tempo de execução não podem ser detectados simplesmente olhando para o código; eles são o resultado da interação do seu código com as entradas ou dados específicos naquele momento.

Os erros de tempo de execução geralmente são causados ​​por dados inesperados sendo passados ​​para o código VBA, tipos de dados incompatíveis, divisão por zeros inesperados e intervalos de células definidos não estando disponíveis. Os erros de tempo de execução também são os mais variados e complexos de rastrear e corrigir.

Como identificar erros de tempo de execução

O VBA de depuração do VBA: como depurar o código Ao escrever e executar o código do VBA, é importante que o usuário aprenda como depurar erros de código. A expectativa do usuário do Excel é que a função de código destaque o código do problema em amarelo e nos dê uma pequena pista sobre o que está causando o problema.

Exemplo 1

Embora o código abaixo simplesmente divida um número pelo outro, existem alguns casos em que isso não será possível. Por exemplo, se célula A1 = 2 e célula A2 = 0, não é possível dividir por zero. A caixa de erro de tempo de execução inclui um botão de depuração, que destaca o código do problema.

Erro de tempo de execução - Exemplo 1

Erros de tempo de execução - Exemplo 1a

Exemplo 2

Neste exemplo, criei uma matriz para coletar os nomes de n empresas em minha planilha. Em seguida, tentei fazer referência ao sexto item, que pode ou não existir em tempo de execução. O VBA apresenta uma mensagem de erro de tempo de execução e me permite pressionar Debug para investigar o problema.

Erro de tempo de execução - Exemplo 2

Assim que pressiono Debug, o VBA destaca a linha de código que está causando o problema. Agora é minha responsabilidade usar a mensagem “Subscrito fora do intervalo” para descobrir o que está errado. O erro subscrito fora do intervalo geralmente significa que seu código é bom em princípio, mas que o item específico que você está procurando não pode ser encontrado. Mais comumente, isso acontecerá ao fazer referência a células ou intervalos no Excel, bem como a matrizes em seu código VBA.

Erro de tempo de execução - Exemplo 2a

Para certificar-se de que a função Depurar está habilitada, no menu Opções> Geral> Interceptação de erros, o estado padrão deve ser “Interromper em erros não tratados”. Deixe a opção marcada.

Interromper em erros não tratados

Como resolver erros de tempo de execução

Como os erros de tempo de execução são variados e complexos por natureza, as soluções também são variadas. Os dois métodos gerais para reduzir erros de tempo de execução são:

Trapping de erros

É uma boa ideia refletir sobre quais cenários possíveis seu código pode encontrar. Melhor ainda é testar seu código em dados de prática ou com usuários reais. Isso permitirá que você reconheça tais cenários em seu VBA, com o código se ramificando em resultados diferentes, dependendo se existem erros.

Exemplo 1

Aqui, a linha 'On Error Resume Next' força o código a continuar, mesmo se um erro for detectado. Em seguida, usamos o teste If Err> 0 para criar uma mensagem de aviso, apenas se o erro existir. O 'On Error Goto 0' redefine o VBA para seu estado padrão.

Trapping de erros - Exemplo 1

Exemplo 2

Aqui, o código está calculando a renda por dia, com base em uma renda mensal e um número definido de dias. Se o número de dias não for fornecido, pulamos para um ponto definido em nosso código chamado “NoDaysInMonthProvided :,” onde usamos o número médio de dias em um mês como uma suposição básica. Embora seja simplista, mostra claramente como detectar um erro e pular para um ponto diferente em seu código.

Trapping de erros - Exemplo 2

Instruções claras do usuário

Documentação clara e rótulos de planilhas garantirão que os usuários interajam com o modelo da maneira que você deseja. Isso ajudará a evitá-los ao inserir texto, em vez de números, ou deixar zeros que podem afetar seu código posteriormente.

Resumo

Existem três tipos principais de erros no VBA que podem afetar seu código de maneiras diferentes. É importante ativar as opções de detecção de erros do VBA, como o depurador e a verificação automática de sintaxe. Eles o ajudarão a estabelecer a localização e a natureza dos erros.

Mais recursos

Finanças é o fornecedor oficial da Certificação CBCA ™ de Certified Banking & Credit Analyst (CBCA) ™ O credenciamento Certified Banking & Credit Analyst (CBCA) ™ é um padrão global para analistas de crédito que cobre finanças, contabilidade, análise de crédito, análise de fluxo de caixa , modelagem de convênios, reembolsos de empréstimos e muito mais. programa de certificação, projetado para ajudar qualquer pessoa a se tornar um analista financeiro de classe mundial. Para continuar avançando em sua carreira, os recursos adicionais abaixo serão úteis:

  • #REF Erros do Excel #REF Erros do Excel #REF Os erros do Excel causam grandes problemas nas planilhas. Aprenda como encontrar e corrigir erros #REF no Excel neste tutorial rápido com exemplos e capturas de tela. A #REF! erro (o "ref" significa referência) é a mensagem que o Excel exibe quando uma fórmula faz referência a uma célula que não existe mais, causada pela exclusão de células que
  • Exemplos do Excel VBA Exemplos do Excel VBA O Excel VBA permite ao usuário criar macros que automatizam processos no Excel. Este guia usará exemplos do Excel VBA para mostrar como gravar uma macro configurando a macro, como declarar variáveis ​​e como fazer referência a dados.
  • Dicas para escrever VBA no Excel Dicas para escrever VBA no Excel Abaixo estão nove dicas para escrever VBA no Excel. O VBA para Excel apresenta inúmeras possibilidades para cálculos personalizados e automação.
  • Métodos VBA Métodos VBA Um método VBA é um pedaço de código anexado a um objeto VBA, variável ou referência de dados que informa ao Excel qual ação executar em relação a esse objeto. Copiar, colar e selecionar são apenas alguns exemplos de métodos VBA que podem ser executados.

Recomendado

O Crackstreams foi encerrado?
2022
O centro de comando do MC é seguro?
2022
Taliesin está deixando um papel crítico?
2022