24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo 12: Técnicas de Tratamento de Erros 191

O seguinte exemplo usa uma declaração Resume depois da ocorrência

de um erro:

Sub EnterSquareRoot6()

Dim Num As Variant

Dim Msg As String

Dim Ans As Integer

TryAgain:

‘ Configure a manipulação de erros

On Error GoTo BadEntry

‘ Tela para valor

Num = InputBox(“Insira um valor”)

‘ Insira a raiz quadrada

ActiveCell.Value = Sqr(Num)

Exit Sub

BadEntry:

Msg = Err.Number & “ : “ & Error(Err.Number)

Msg = Msg & vbNewLine & vbNewLine

Msg = Msg & “Make sure a range is selected, “

Msg = Msg & “the sheet is not protected, “

Msg = Msg & “and you enter a nonnegative value.”

Msg = Msg & vbNewLine & vbNewLine & “Try again?”

Ans = MsgBox(Msg, vbYesNo + vbCritical)

If Ans = vbYes Then Resume TryAgain

End Sub

Este procedimento tem outro rótulo: TryAgain. Se ocorrer um erro, a

execução prossegue na etiqueta BadEntry e o código exibe a mensagem

mostrada na Figura 12-5. Se o usuário responder clicando Sim, a

declaração Resume pula e a execução volta para a etiqueta TryAgain. Se

o usuário clicar Não, o procedimento termina.

Observe que a mensagem de erro também inclui o número do erro,

junto com a descrição “oficial” do erro. Tirei isso, porque escrevo a

respeito mais adiante. Veja “Como identificar erros específicos”.

Figura 12-5:

Se ocorrer

um erro, o

usuário

pode

decidir se

quer tentar

de novo.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!