ID do artigo: 146864 - Última revisão: sexta-feira, 19 de janeiro de 2007 - Revisão: 3.4 Erro de ajuste de registro com o Visual Basic for Applications
Nesta páginaSumárioQuando um erro em tempo de execução ocorre em um Microsoft Visual Basic para aplicativos macro, uma mensagem de erro aparece na tela e a macro pára ou se comporta de forma imprevisível. Para impedir que o aplicativo falhando ou se comportando de forma imprevisível, você pode incluir código de macro que intercepta o erro e informa a macro como manipulá-lo. O processo de interceptar e manipular um erro em tempo de execução é chamado de "interceptação de erro". O conjunto de instruções que informa o aplicativo como manipular o erro é chamado o "rotina de tratamento de erros" ou "identificador de erro". Mais InformaçõesMicrosoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades. Enquanto o código do Visual Basic estiver sendo executado, você pode encontrar vários tipos de erros que podem ser interceptados. Você pode tirar proveito de interceptação de erro no Microsoft Excel usando as seguintes funções e instruções. Na política de errosA declaração On Error faz com que Visual Basic for Applications iniciar ou Parar ajuste de registro de erro. A declaração On Error também especifica um conjunto de instruções para executar se um erro for encontrado.Para obter informações adicionais, leia os seguintes artigos na Base de dados de Conhecimento da Microsoft: 141571
(http://support.microsoft.com/kb/141571/EN-US/
)
Como usar "Em erro" para erros de identificador em uma macro Função de erroA função Err retorna o número de erro encontrado.Exemplo usando a função de erro:
Error code Error message
---------- -------------
3 Return without GoSub
5 Invalid procedure call
6 Overflow
7 Out of memory
9 Subscript out of range
10 Duplicate definition (versions 5.0 and 7.0)
10 This array is fixed or temporarily locked (version97)
11 Division by zero
13 Type mismatch
14 Out of string space
16 String formula too complex (versions 5.0 and 7.0)
16 Expression too complex (version 97)
17 Can't perform requested operation
18 User interrupt occurred
20 Resume without error
28 Out of stack space
35 Sub or function not defined (versions 5.0 and 7.0)
35 Sub, function, or property not defined (version 97)
47 Too many DLL application clients (version 97)
48 Error in loading DLL
49 Bad DLL calling convention
51 Internal error
52 Bad file name or number
53 File not found
54 Bad file mode
55 File already open
57 Device I/O error
58 File already exists
59 Bad record length
61 Disk full
62 Input past end of line
63 Bad record number
67 Too many files
68 Device unavailable
70 Permission denied
71 Disk not ready
74 Can't rename with different drive
75 Path/File access error
76 Path not found
91 Object variable not set (versions 5.0 and 7.0)
91 Object variable or With block variable not set
(version 97)
92 For Loop not initialized
93 Invalid pattern string
94 Invalid use of Null
95 User-defined error (versions 5.0 and 7.0 only)
298 System DLL could not be loaded (version 97)
320 Can't use character device names in specified file names
(version 97)
321 Invalid file format (version 97)
322 Can't create necessary temporary file (version 97)
323 Can't load module; invalid format (versions 5.0 and 7.0)
325 Invalid format in resource file (version 97)
327 Data value named was not found (version 97)
328 Illegal parameter; can't write arrays (version 97)
335 Could not access system registry (version 97)
336 ActiveX component not correctly registered (version 97)
337 ActiveX component not found (version 97)
338 ActiveX component did not correctly run (version 97)
360 Object already loaded (version 97)
361 Can't load or unload this object (version 97)
363 Specified ActiveX control not found (version 97)
364 Object was unloaded (version 97)
365 Unable to unload within this context (version 97)
368 The specified file is out of date. This program requires
a newer version (version 97)
371 The specified object can't be used as an owner form for
Show (version 97)
380 Invalid property value (version 97)
381 Invalid property-array index (version 97)
382 Property Set can't be executed at run time (version 97)
383 Property Set can't be used with a read-only property
(version 97)
385 Need property-array index (version 97)
387 Property Set not permitted (version 97)
393 Property Get can't be executed at run time (version 97)
394 Property Get can't be executed on write-only property
(version 97)
400 Form already displayed; can't show modally (version 97)
402 Code must close topmost modal form first (version 97)
419 Permission to use object denied (version 97)
422 Property not found (version 97)
423 Property or method not found
424 Object required
425 Invalid object use (version 97)
429 ActiveX component can't create object or return
reference to this object (version 97)
430 Class doesn't support OLE Automation
430 Class doesn't support Automation (version 97)
432 File name or class name not found during Automation
operation (version 97)
438 Object doesn't support this property or method
440 OLE Automation error
440 Automation error (version 97)
442 Connection to type library or object library for remote
process has been lost (version 97)
443 Automation object doesn't have a default value
(version 97)
445 Object doesn't support this action
446 Object doesn't support named arguments
447 Object doesn't support current locale settings
448 Named argument not found
449 Argument not optional
449 Argument not optional or invalid property assignment
(version 97)
450 Wrong number of arguments
450 Wrong number of arguments or invalid property assignment
(version 97)
451 Object not a collection
452 Invalid ordinal
453 Specified DLL function not found
454 Code resource not found
455 Code resource lock error
457 This key is already associated with an element of this
collection (version 97)
458 Variable uses a type not supported in Visual Basic
(version 97)
459 This component doesn't support events (version 97)
460 Invalid clipboard format (version 97)
461 Specified format doesn't match format of data
(version 97)
480 Can't create AutoRedraw image (version 97)
481 Invalid picture (version 97)
482 Printer error (version 97)
483 Printer driver does not support specified property
(version 97)
484 Problem getting printer information from the system.
Make sure the printer is set up correctly (version 97)
485 Invalid picture type (version 97)
486 Can't print form image to this type of printer
(version 97)
735 Can't save file to Temp directory (version 97)
744 Search text not found (version 97)
746 Replacements too long (version 97)
1000 Classname does not have propertyname property
(versions 5.0 and 7.0)
1001 Classname does not have methodname method
(versions 5.0 and 7.0)
1002 Missing required argument argumentname
(versions 5.0 and 7.0)
1003 Invalid number of arguments (versions 5.0 and 7.0)
1004 Methodname method of classname class failed
(versions 5.0 and 7.0)
1005 Unable to set the propertyname property of the classname
class (versions 5.0 and 7.0)
1006 Unable to get the propertyname property of the classname
class (versions 5.0 and 7.0)
31001 Out of memory (version 97)
31004 No object (version 97)
31018 Class is not set (version 97)
31027 Unable to activate object (version 97)
31032 Unable to create embedded object (version 97)
31036 Error saving to file (version 97)
31037 Error loading from file (version 97)
142138
(http://support.microsoft.com/kb/142138/EN-US/
)
OFF: Uma explicação de erros interceptáveis no Visual Basic para aplicativos Função de erroA função erro retorna a mensagem de erro que corresponde a um número determinado erro.Exemplo usando a função de erro: Erro de declaraçãoA declaração Error Simula a ocorrência de um erro, permitindo que você atribuir um número erro personalizado para a função Err. Esses valores de erro definido pelo usuário-são valores que você definir para seus procedimentos e que sempre são armazenados em variáveis do tipo de dados Variant. Um uso comum desse tipo de valor de erro é nos procedimentos que aceitam vários argumentos e retornam um valor. Por exemplo, suponha que o valor de retorno é válido somente se os argumentos estejam dentro de um determinado intervalo. O procedimento pode testar os argumentos que o usuário fornece e se os argumentos não estiverem no intervalo aceitável, você pode ter o retorno do procedimento o valor de erro apropriado.Erro é um subtipo do tipo de dados Variant e quando o termo "valor de erro" é usado, isso normalmente significa que uma variável é do tipo Variant e que ele contém um valor que o Visual Basic for Applications reconheça como um erro definido pelo usuário. Valores de erro são usados em um procedimento para indicar que as condições de erro tenham ocorrido. Ao contrário dos erros em tempo de execução normais, esses erros não interrompam o código porque eles são reconhecidos como variáveis comuns e não os erros. Os procedimentos podem testar esses valores de erro e tome as ações corretivas apropriadas. Você também pode usar a instrução Error para simular erros em tempo de execução. Isso é especialmente útil quando você está testando seus aplicativos, ou quando você deseja tratar uma determinada condição como sendo equivalente a um erro em tempo de execução. Qualquer erro em tempo de execução aplicativos do Visual Basic pode ser simulado, fornecendo o código de erro para o erro em uma instrução de erro. Você também pode usar a instrução de erro para criar seus próprios erros definidos pelo usuário, fornecendo um código de erro que não corresponde a um Visual Basic para erro de tempo de execução de aplicativos. A tabela que contém uma lista de erros internas aparece anteriormente neste artigo (na seção "Função de erro"). Neste momento, o Visual Basic for Applications não usa todos os números disponíveis para erros internos. Em futuras versões do Visual Basic for Applications, números internos aumentará como mais interno - erros são adicionados. É recomendável que você inicia os números de erro em 50.000 e funciona de maneira até 65.535 para evitar possíveis conflitos no futuro. Exemplo usando política de erros para Simulate erros de tempo de execução: Função CVErrA função CVErr é usada para criar valores de erro. CVErr função usa um argumento que deve ser um número inteiro ou ser uma variável que contém um número inteiro.Usando valores de erro internasHá sete valores de erro internas no Microsoft Excel. A tabela abaixo mostra o número de erro (constante), o valor de erro literal e o valor de erro convertido.Error number (Constant) Literal error value Converted error value ----------------------------------------------------------------------- xlErrDiv0 [#DIV/0!] CVErr(xlErrDiv0) xlErrNA [#N/A] CVErr(xlErrNA) xlErrName [#NAME?] CVErr(xlErrName) xlErrNull [#NULL!] CVErr(xlErrNull) xlErrNum [#NUM!] CVErr(xlErrNum) xlErrRef [#REF!] CVErr(xlErrRef) xlErrValue [#VALUE!] CVErr(xlErrValue) Valores de exemplo com erro interna: Centralizar o código de tratamento de errosQuando você adiciona código de tratamento de erros do Visual Basic para aplicativos macros, você descobrirá que os erros mesmos estão sendo manipulados repetidas vezes. Você pode reduzir o tamanho do seu código e o esforço necessário para escrever código escrevendo alguns procedimentos que o seu código de tratamento de erros pode chamar para lidar com as situações de erro comuns.O seguinte é um exemplo de um procedimento de função que exibe uma mensagem correspondente para o erro que ocorreu e sempre que possível, permite que o usuário especifique que ação tomar próxima escolhendo um determinado botão. Ele retorna o número código ao procedimento que chamou. Interrompe o tratamento de usuárioUm usuário pode interromper um procedimento do Visual Basic for Applications pressionando CTRL+BREAK ou ESC (COMMAND + ponto no Macintosh). É possível desativar as interrupções para procedimentos em seus aplicativos concluídos. No entanto, se você não desativar as interrupções de usuário no procedimento concluído, você pode fazer-se de que o procedimento é notificado quando uma interrupção ocorreu para que possa fechar arquivos, desconectar-se de recursos compartilhados ou restaurar variáveis modificadas antes de retornar o controle do aplicativo para o usuário.Você ajustar o pode registro interrupções do usuário nos seus procedimentos, definindo o EnableCancelKey de propriedade para xlErrorHandler. Quando essa propriedade é definida, todas as interrupções irão gerar um tempo de execução número do erro 18, que pode ser interceptado usando um erro na instrução. Você pode manipular o erro para interromper o procedimento e sair do programa. Se a instrução Resume é usada para continuar o procedimento após um erro de tempo de execução trapped, a interrupção será ignorada. Também é possível ignorar completamente interrupções de usuário definindo a propriedade EnableCancelKey para xlDisabled. Nesse estado, o Microsoft Excel ignora todas as tentativas pelo usuário interromper o procedimento em execução. Para restaurar a interrupção de padrão de processamento, altere a configuração da propriedade EnableCancelKey para xlInterrupt. Para impedir que um procedimento desativar permanentemente interrupções do usuário, Microsoft Excel sempre restaura a configuração padrão da propriedade EnableCancelKey xlInterrupt sempre que o procedimento for concluído sua execução. Para garantir que as interrupções são manipuladas corretamente dentro do seu código, você deve explicitamente desative ou interceptar as interrupções de cada vez que o procedimento é executado. Deve-se observar esse manipulador de interrupção somente um pode ser usado para cada procedimento e que o mesmo manipulador é usado para todos os erros de tempo de execução encontrados por esse procedimento. O exemplo a seguir demonstra um procedimento que requer um grande período de tempo para ser concluída. Se um usuário interrompe o procedimento, um erro será interceptado. A interrupção de usuário primeiro confirma que o procedimento, na verdade, deve ser interrompido e, em seguida, sai o procedimento de maneira ordenada. Declaração de currículoA instrução Resume continua a execução remota de código após um rotina de manipulação de erro.ReferênciasExcel 97Para obter mais informações sobre erros de macro do ajuste de registro, clique no índice de tabulação no Microsoft Excel 97 Ajuda do Visual Basic, digite o seguinte texto Interceptando erros e, em seguida, clique duas vezes no texto selecionado para ir para o tópico "Erros interceptáveis". Excel 7.0Para obter mais informações sobre ajuste de registro erros de macro, clique no índice de tabulação no Microsoft Excel 7.0 Ajuda, digite o seguinte texto interceptação de erro e, em seguida, clique duas vezes no texto selecionado para ir para o tópico "Ajuste de registro de erro". Excel 5.0No "Guia do usuário do Visual Basic", versão 5.0, capítulo 9, "Manipulando erros e erro valores", consulte os seguintes tópicos:
A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 146864
(http://support.microsoft.com/kb/146864/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar para o início