Como identificar erros específicos no excel 2016 vba

Video: |VBA| VARIAVEIS - VBA 4ALL

Todos os erros VBA não são criados iguais. Alguns são graves, e alguns são menos graves. Embora você pode ignorar erros você considera ser inconseqüente, você tem que lidar com outros erros mais graves. Em alguns casos, você precisa identificar o erro específico que ocorre.

Cada tipo de erro tem um número oficial. Quando ocorre um erro, o Excel armazena o número do erro em um objeto de erro chamado Err. propriedade Número deste objeto contém o número do erro, e sua propriedade Description contém uma descrição do erro. Por exemplo, a seguinte instrução exibe o número do erro, dois pontos, e uma descrição do erro:

MsgBox Err.Number & ": " & Err.Description

Tenha em mente que as mensagens de erro do Excel não são sempre muito útil - mas você já sabe disso.

Video: #82 Como identificar números não sorteados da Lotofácil - Excel VBA



O procedimento a seguir demonstra como determinar qual erro ocorreu. Neste caso, você pode ignorar os erros causados ​​por tentar obter a raiz quadrada de um número não positivo (isto é, o erro 5) ou erros causados ​​por tentar obter a raiz quadrada de um valor numérico (erro 13).

Por outro lado, é preciso informar o usuário se a planilha está protegida e a seleção contém um ou mais células bloqueadas. (Caso contrário, o usuário pode pensar que a macro funcionou quando ele realmente não fez.) A tentativa de escrever para uma célula bloqueada em uma planilha protegida provoca erro 1004.

Sub SelectionSqrt () célula Dim como RangeDim ErrMsg Como StringIf NomeTipo (Selecção) lt; gt; "Alcance" Em seguida, Exit SubOn Error GoTo ErrorHandlerFor cada célula Selectioncell.Value = Sqr (cell.Value) Next cellExit SubErrorHandler: sheetMsgBox Select Case Err.NumberCase 5 `Negative numberResume NextCase 13` Tipo mismatchResume NextCase 1004 `cela trancada, protegida "Celular é bloqueado. Tente novamente.", VbCritical, cell.AddressExit Subcaso ElseErrMsg = Erro (Err.Number) MsgBox "ERRO: " & Mensagem de erro, vbCritical, cell.AddressExit SubEnd SelectEnd Sub

Quando ocorre um erro de execução, a execução salta para o início de código para o rótulo ErrorHandler. Os testes estrutura Case selecionar para três números de erro comuns. Se o número de erro é de 5 ou 13, execução continua na próxima instrução. (Em outras palavras, o erro é ignorado.) Mas se o número de erro é 1004, a rotina informa o usuário e depois termina. O último caso, um pega-tudo para erros imprevistos, retém todos os outros erros e exibe a mensagem de erro real.


Publicações relacionadas