Técnicas de depuração para excel 2016 vba
Video: Consolidar: Várias planilhas em uma Única - com VBA
Conteúdo
- Video: consolidar: várias planilhas em uma Única - com vba
- Examinando seu código
- Usando a função msgbox
- Video: [vba] depuração e inspeção de variáveis
- Video: [ao vivo] laennder alves (guru do excel) - usando vba para manipular querys
- Video: excel e vba - depurando código vba
- Inserindo instruções debug.print
- Usando o depurador 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:
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.
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.
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.