Compartilhar via


Erro definido pelo aplicativo ou pelo objeto

Esta mensagem é exibida quando um erro gerado através do método Raise ou da declaração Error não corresponde a um erro definido pelo Visual Basic for Applications. Ele também é retornado pela função Error para argumentos que não correspondem a erros definidos pelo VBA. Apesar de poder ser um erro definido por você, ou um que seja definido por um objeto, incluindo os aplicativos host como o Microsoft Excel, Visual Basic, etc. Por exemplo, os formulários do Visual Basic geram erros relacionados a formulários que não podem ser gerados a partir do código especificando um número como um argumento para o método Raise ou a declaração Error. Esta mensagem tem as seguintes causas e soluções:

  • O aplicativo executou uma declaração Err.Raisen ou Errorn, mas o número n não foi definido pelo Visual Basic for Applications. Se esta era a intenção, você deve usar Err.Raise e especificar argumentos adicionais para que um usuário final possa entender a natureza do erro. Por exemplo, você pode incluir uma cadeia de caracteres de descrição, fonte e informações de ajuda. Para regenerar um erro interceptado, esta abordagem funcionará se você não executar Err.Clear antes de regenerar o erro. Se executar Err.Clear primeiro, deverá preencher os argumentos adicionais ao método Raise. Consulte o contexto em que o erro ocorreu e certifique-se de que está regenerando o mesmo erro.

  • Ao acessar objetos em outros aplicativos, pode ter sido propagado de volta para o seu programa um erro que não possa ser mapeado para um erro do Visual Basic.

Consulte a documentação para ver os objetos que você possa ter acessado. A propriedade Source do objeto Err deve conter a ID programática do aplicativo ou objeto que gerou o erro. Para entender o contexto de um erro retornado por um objeto, você pode usar o constructo On Error Resume Next no código que acessa objetos, em vez de a sintaxe de linhaOn Error GoTo.

Listar erros interceptáveis do aplicativo host

No passado, os programadores usavam frequentemente um loop para imprimir uma lista de todas as cadeias de caracteres de mensagens de erro interceptáveis. Normalmente, isso era feito com um código como o seguinte:

For index = 1 to 500
    Debug.Print Error$(index)
Next index

Esse código ainda lista todas as mensagens de erro do Visual Basic for Applications, mas exibe "Erro definido pelo aplicativo ou pelo objeto" para erros definidos pelo host, como os que se referem a formulários, controles, etc. no Visual Basic. Muitos desses erros são erros de execução interceptáveis. Use a caixa de diálogo de Pesquisa de Ajuda para localizar a lista de erros interceptáveis específicos para seu aplicativo host. Clique em Pesquisar, digite Interceptável na primeira caixa de texto e clique em Mostrar Tópicos. Selecione Erros Interceptáveis na caixa de lista inferior e clique em Ir Para.

Saiba mais selecionando o item em questão e pressionando F1 (no Windows) ou HELP (no Macintosh).

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.