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 185

A imperfeição da macro

Execute o código umas duas vezes para experimentá-lo. Ele funciona

muito bem, não é? Agora, tente entrar com um número negativo quando

lhe for pedido um valor. Opa! Neste planeta, tentar calcular a raiz quadrada

de um número negativo é ilegal. O Excel responde com a mensagem

mostrada na Figura 12-2, indicando que o seu código gerou um erro em

tempo de execução. Por ora, apenas clique o botão Fim. Se você clicar o

botão Depurar, o Excel suspende a macro, assim você pode usar as

ferramentas de depuração que ajudam a rastrear o erro (eu descrevo as

ferramentas de depuração no Capítulo 13).

Figura 12-2:

O Excel

exibe esta

mensagem

de erro

quando o

procedimento

tenta

calcular

a raiz

quadrada

de um

número

negativo.

A maioria das pessoas não acha as mensagens de erro do Excel muito

úteis (por exemplo, procedimento ou argumento inválido). Para aperfeiçoar

o procedimento, você precisa prever o erro e lidar com ele mais

graciosamente. Em outras palavras, precisa acrescentar algum código

para lidar com erro.

Eis uma versão modificada de EnterSquareRoot:

Sub EnterSquareRoot2()

Dim Num As Double

‘ Prompt for a value

Num = InputBox(“Insira um valor”)

‘ Make sure the number is nonnegative

If Num < 0 Then

MsgBox “Você deve inserir um número positivo.”

Exit Sub

End If

‘ Insert the square root

ActiveCell.Value = Sqr(Num)

End Sub

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

Saved successfully!

Ooh no, something went wrong!