Como lidar com erros em excel 2016 vba
Video: Curso Excel VBA - Tratamento de erro avançado - Dica 9
Conteúdo
Como você pode identificar e lidar com cada erro possível no Excel 2016? Muitas vezes, você não pode. Felizmente, VBA fornece uma outra maneira de lidar com esses erros irritantes.
Revisitando o procedimento EnterSquareRoot
Examine o seguinte código. A rotina usa um multifacetado Em instrução de erro para interceptar todos os erros e, em seguida, verificar para ver se o InputBox foi cancelado.
Sub EnterSquareRoot5 () Dim Num Como VariantDim Msg As String `Configure erro handlingOn Error GoTo BadEntry` Prompt para uma valueNum = InputBox ( ‘Digite um valor’) `Sair se cancelledIf Num = ‘’ Then Exit Sub` Insira o quadrado rootActiveCell. valor = Sqr (Nm) Exit SubBadEntry: Msg = “ocorreu um erro.” & vbNewLine & vbNewLineMsg = Msg & “Certifique-se de uma gama é selecionado,“Msg = Msg & “A folha não está protegida,“Msg = Msg & “E você inserir um valor não negativo.” MsgBox Msg, vbCriticalEnd Sub
Este armadilhas de rotina qualquer tipo de erro de execução. Depois de prender um erro de execução, o procedimento EnterSquareRoot revista exibe esta caixa de mensagem. Esta caixa de mensagem descreve as causas mais prováveis do erro.
On Error não está funcionando?
Se uma instrução On Error não está funcionando como anunciado, você precisa alterar uma das definições:
Video: Error Handling Excel VBA
Ative o VBE.
Escolha Ferramentas → comando Opções.
Clique na guia Geral da caixa de diálogo Opções.
Certifique-se de que a Interromper em todos os erros configuração está desmarcada.
Se essa configuração for selecionada, Excel essencialmente ignora qualquer Em declarações erro. Você normalmente deseja manter as opções interceptação de erro definido como Break on Erros não tratados.
Sobre a declaração On Error
Usando uma instrução de erro em seu código VBA permite que você ignorar o tratamento de erros built-in do Excel e usar o seu próprio código de tratamento de erros. No exemplo anterior, um erro de execução faz com que a execução da macro para saltar para a instrução rotulada BadEntry. Como resultado, você evitar mensagens de erro hostis do Excel, e você pode exibir uma mensagem personalizada para o usuário.
Observe que o exemplo usa uma instrução Exit Sub direita antes do rótulo BadEntry. Esta declaração é necessário porque você não quer executar o código de tratamento de erro se um erro faz não ocorrer.