Técnicas de depuração para excel 2016 vba

Video: Consolidar: Várias planilhas em uma Única - com VBA

Você pode se deparar com alguns problemas com o seu código VBA, mas como você encontrar o problema? Às vezes o seu código VBA pode precisar de alguma depuração. Continue lendo para descobrir os quatro métodos mais comuns para a depuração do código Excel VBA:

  • Examinando o código

  • Inserindo funções MsgBox em vários locais no seu código

  • Inserindo instruções Debug.Print

  • Usando o Excel built-in ferramentas de depuração

Examinando seu código

Talvez a técnica de depuração mais simples é simplesmente tomar um olhar mais atento sobre o seu código para ver se você pode encontrar o problema. Este método, é claro, exige conhecimento e experiência. Em outras palavras, você tem que saber o que está fazendo. Se você tiver sorte, o erro salta para a direita para fora, e você tapa na testa e dizer: “D`oh!” Quando a dor testa diminui, você pode corrigir o problema.

Observe o uso das palavras, “Se você tiver sorte.” Isso é porque muitas vezes você descobrir erros quando você estiver trabalhando em seu programa durante oito horas seguidas, é 02:00, e você estiver executando em cafeína e força de vontade. Em momentos como esse, você tem sorte se você pode até mesmo ver o seu código, muito menos encontrar os bugs. Assim, não se surpreenda se simplesmente examinando seu código não é suficiente para fazer você encontrar e eliminar todos os erros que ele contém.

Usando a função MsgBox

Um problema comum em muitos programas envolve uma ou mais variáveis ​​não assumindo os valores esperados. Nesses casos, o acompanhamento da variável (s), enquanto seu código é executado é uma técnica de depuração útil. Uma maneira de fazer isso é através da inserção de funções MsgBox temporários em sua rotina. Por exemplo, se você tem uma variável chamada CellCount, você pode inserir a seguinte declaração:

Video: [VBA] Depuração e inspeção de variáveis

MsgBox CellCount

Quando você executar a rotina, a função MsgBox exibe o valor da CellCount.

Muitas vezes é útil para exibir os valores de duas ou mais variáveis ​​na caixa de mensagem. O seguinte instrução exibe o valor actual de duas variáveis: LoopIndex (1) e CellCount (72), separados por um espaço.

MsgBox LoopIndex & ““ & Contagem de células

Note-se que as duas variáveis ​​são combinadas com o operador de concatenação (&) E inserir um caractere de espaço entre eles. Caso contrário, a caixa de mensagem amarra os dois valores, fazendo-os parecer um único valor. Você também pode usar o built-in constante, vbNewLine, no lugar do caractere de espaço. vbNewLine insere uma quebra de avanço de linha, que exibe o texto em uma nova linha. A declaração a seguir mostra três variáveis, cada um em uma linha separada:

Usando uma caixa de mensagem para exibir o valor de três variáveis.
Usando uma caixa de mensagem para exibir o valor de três variáveis.
MsgBox LoopIndex & vbNewLine & Contagem de células & vbNewLine & MyVal

Esta técnica não se limita a variáveis ​​de monitoramento. Você pode usar uma caixa de mensagem para exibir todos os tipos de informações úteis, enquanto seu código está sendo executado. Por exemplo, se o seu código percorre uma série de folhas, a seguinte instrução exibe o nome e o tipo da folha ativa:



MsgBox ActiveSheet.Name & ““ & NomeTipo (ActiveSheet)

Se a sua caixa de mensagem mostra algo inesperado, pressione Ctrl + Break, e você verá uma caixa de diálogo que lhe diz execução de código foi interrompida, você tem quatro opções:

Video: [AO VIVO] Laennder Alves (Guru do Excel) - Usando VBA para manipular Querys

  • Clique no botão Continuar. O código continua a executar.

  • Clique no botão End. Execução pára.

  • Clique no botão Debug. O VBE entra em modo de depuração.

  • Clique no botão Ajuda. A tela de ajuda diz que você pressionou Ctrl + Break. Em outras palavras, não é muito útil.

    Pressionando Ctrl + Break interrompe a execução do seu código e dá-lhe algumas opções.
    Pressionando Ctrl + Break interrompe a execução do seu código e dá-lhe algumas opções.

Se o seu teclado não tiver uma tecla Break, tente pressionar Ctrl + ScrollLock.

Video: Excel e Vba - Depurando Código Vba

Sinta-se livre para usar funções MsgBox frequência quando você depurar seu código. Apenas certifique-se que você removê-los depois de identificar e corrigir o problema.

Inserindo instruções Debug.Print

Como uma alternativa ao uso de funções MsgBox no seu código, você pode inserir um ou mais temporários instruções Debug.Print. Usar essas instruções para imprimir o valor de uma ou mais variáveis ​​na janela imediata. Aqui está um exemplo que mostra os valores de três variáveis:

Debug.Print LoopIndex, CellCount, MyVal

Note-se que as variáveis ​​são separados por vírgulas. Você pode exibir tantas variáveis ​​quanto você gosta com uma única instrução Debug.Print.

Debug.Print envia saída para a janela imediata, mesmo que a janela está oculto. Se a janela Immediate do VBE não estiver visível, pressione Ctrl + G (ou escolha Exibir → janela imediata). Aqui está alguma saída na janela imediata.

Uma declaração Debug.Print envia saída para a janela imediata.
Uma declaração Debug.Print envia saída para a janela imediata.

Ao contrário MsgBox, instruções Debug.Print não interromper seu código. Então, você precisa manter um olho sobre a janela Immediate para ver o que está acontecendo.

Depois de ter depurado o código, certifique-se de remover todas as instruções Debug.Print. Mesmo as grandes empresas como a Microsoft, ocasionalmente se esqueça de remover suas instruções Debug.Print. Em várias versões anteriores do Excel, cada vez que o suplemento Ferramentas de análise em foi aberto, você verá várias mensagens estranhas na janela imediata. Esse problema foi finalmente corrigido no Excel 2007.

Usando o depurador VBA

Os designers do Excel estão intimamente familiarizados com o conceito de bugs. Consequentemente, o Excel inclui um conjunto de ferramentas que podem ajudá-lo a corrigir problemas no seu código VBA depuração.


Publicações relacionadas