Tratamento de erros no Excel VBA - Macros fáceis do Excel

Índice

Abaixo, veremos dois programas em Excel VBA. Um programa simplesmente ignora erros. O outro programa continua a execução em uma linha especificada ao encontrar um erro.

Situação:

Ambos os programas calculam a raiz quadrada dos números.

Raiz quadrada 1

Adicione as seguintes linhas de código ao botão de comando 'Raiz quadrada 1'.

1. Primeiro, declaramos dois objetos Range. Chamamos os objetos Range de rng e cell.

Dim rng como intervalo, célula como intervalo

2. Inicializamos o objeto Range rng com o intervalo selecionado.

Definir rng = Seleção

3. Queremos calcular a raiz quadrada de cada célula em um intervalo selecionado aleatoriamente (este intervalo pode ser de qualquer tamanho). No Excel VBA, você pode usar o loop For Each Next para isso. Adicione as seguintes linhas de código:

Para cada célula em rng
Próxima célula

Nota: rng e cell são escolhidos aleatoriamente aqui, você pode usar qualquer nome. Lembre-se de referir-se a esses nomes no restante do código.

4. Adicione a seguinte linha de código ao loop.

On Error Resume Next

5. Em seguida, calculamos a raiz quadrada de um valor. No Excel VBA, podemos usar a função Sqr para isso. Adicione a seguinte linha de código ao loop.

cell.Value = Sqr (cell.Value)

6. Saia do Editor do Visual Basic e teste o programa.

Resultado:

Conclusão: o Excel VBA ignorou células contendo valores inválidos, como números negativos e texto. Sem usar a instrução 'On Error Resume Next', você obteria dois erros. Tenha o cuidado de usar a instrução 'On Error Resume Next' apenas quando tiver certeza de que ignorar erros está OK.

Raiz quadrada 2

Adicione as seguintes linhas de código ao botão de comando 'Raiz quadrada 2'.

1. O mesmo programa que Square Root 1, mas substitua 'On Error Resume Next' por:

Em erro GoTo InvalidValue:

Nota: InvalidValue é escolhido aleatoriamente aqui, você pode usar qualquer nome. Lembre-se de referir-se a esse nome no restante do código.

2. Fora do loop For Each Next, primeiro adicione a seguinte linha de código:

Sair do Sub

Sem esta linha, o resto do código (código de erro) será executado, mesmo que não haja nenhum erro!

3. O Excel VBA continua a execução na linha começando com 'InvalidValue:' ao encontrar um erro (não se esqueça dos dois pontos). Adicione a seguinte linha de código:

Valor inválido:

4. Mantemos nosso código de erro simples por enquanto. Exibimos um MsgBox com algum texto e o endereço da célula onde ocorreu o erro.

MsgBox "não é possível calcular a raiz quadrada na célula" e célula.Endereço

5. Adicione a seguinte linha para instruir o Excel VBA a retomar a execução após executar o código de erro.

Retomar a seguir

6. Saia do Editor do Visual Basic e teste o programa.

Resultado:

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave