Artigo: 146864 - Última revisão: sexta-feira, 19 de Janeiro de 2007 - Revisão: 3.4 Erro de véu com o Visual Basic for Applications
Nesta páginaSumárioQuando ocorre um erro no tempo de execução num Microsoft Visual Basic para aplicações de macro, uma mensagem de erro é apresentada no ecrã e a macro pára ou apresentar um comportamento imprevisível. Para impedir que a aplicação de bloquear ou um comportamento modo imprevisível, pode incluir código de macro que intercepta o erro e explica como processar a macro. O processo de interceptar e processar um erro durante a execução é chamado de "intercepção de erros." O conjunto de instruções que indica a aplicação como lidar com o erro é chamado "rotina de tratamento de erro" ou "processador de erros." Mais InformaçãoA Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador. Durante a execução do código do Visual Basic, poderá encontrar diversos tipos de erros que podem ser aplicados véus. Pode tirar partido de intercepção de erros no Microsoft Excel utilizando as seguintes funções e instruções. Na declaração de errosA instrução em erro faz com que Visual Basic for Applications iniciar ou parar intercepção de erros. A instrução de erro também especifica um conjunto de instruções para executar se for detectado um erro.Para obter informações adicionais, consulte os seguintes artigos na base de dados de conhecimento da Microsoft: 141571
(http://support.microsoft.com/kb/141571/EN-US/
)
Como utilizar "On Error" para processar erros de uma macro Mensagem de funçãoA função Err devolve o número do erro encontrado.Exemplo utilizando 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 detectável erros no Visual Basic para aplicações Função de erroA função de erro devolve a mensagem de erro que corresponde a um número determinado erro.Exemplo utilizando a função de erro: Declaração de erroA instrução erro simula a ocorrência do erro, permitindo-lhe atribuir um número de erro personalizadas a função Err. Estes valores de erro definido pelo utilizador-são valores que pode definir para os procedimentos e que são sempre armazenadas em variáveis do tipo de dados variante. Uma utilização comum deste tipo de valor de erro é nos procedimentos que aceitam vários argumentos e devolvem um valor. Por exemplo, suponha que o valor devolvido é válido apenas se os argumentos incidem dentro de um determinado intervalo. O procedimento pode testar os argumentos que o utilizador forneça e se os argumentos não estiverem num intervalo aceitável, pode ter o retorno do procedimento o valor de erro adequada.Erro é um subtipo do tipo de dados variante e quando é utilizado o termo "valor de erro", isto normalmente significa que é uma variável do tipo de variante e que contém um valor que o Visual Basic for Applications reconheça como um erro definido pelo utilizador. Valores de erro são utilizados num procedimento para indicar que ocorreram as condições de erro. Ao contrário dos erros durante a execução normais, estes erros não interrompem o código porque forem reconhecidos como variáveis normais e não os erros. Os procedimentos podem testar estes valores de erro e efectuar as acções correctivas adequadas. Também pode utilizar a instrução de erro para simular erros de tempo de execução. Isto é especialmente útil quando estiver a testar as aplicações ou quando pretende tratar de uma determinada condição como sendo equivalente a um erro de tempo de execução. Qualquer Visual Basic for Applications run-time error pode ser simulado fornecendo o código de erro para o erro uma instrução de erro. Também pode utilizar a instrução de erro para criar os seus próprios erros definidos pelo utilizador, fornecendo um código de erro que não corresponde do Visual Basic for Applications run-time error. A tabela que contém uma lista de erros incorporados aparece neste artigo (na secção "Mensagem de função"). Neste momento, Visual Basic for Applications não utiliza todos os números disponíveis para erros internos. Em futuras versões do Visual Basic for Applications, os números internos aumentará como criado - erros são adicionados mais. Recomenda-se que inicie os números de erro no 50.000 e trabalhar da forma até 65.535 para evitar possíveis conflitos no futuro. Exemplo utilizando o erro de declaração para Simulate Run-time erros: Função ' CVErr 'A função CVErr é utilizada para criar valores de erro. CVErr função tem um argumento que tem de ser um número inteiro ou ser uma variável que contém um número inteiro.Utilizar valores de erro incorporadasExistem sete valores de erro incorporadas no Microsoft Excel. A tabela abaixo mostra o número de erro (constante), o valor de erro literal e o valor de erro convertidos.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 utilizando erro incorporado: Centralizar o código de processamento de errosQuando adiciona o código de tratamento de erros para o Visual Basic para as macros, irá descobrir que os erros mesmos estão a ser processados repetidamente. Pode reduzir o tamanho do código e o esforço necessário para escrever código escrevendo alguns procedimentos que pode chamar o código de tratamento de erros para lidar com situações de erro comuns.Segue-se um exemplo de um procedimento função que apresenta uma mensagem correspondente ao erro que ocorreu e sempre que possível, permite ao utilizador especificar que acção a tomar seguinte escolhendo um determinado botão. Em seguida, devolve o número de código ao procedimento chamado-lo. Processar utilizador interrupçõesUm utilizador pode interromper um procedimento do Visual Basic for Applications, premindo CTRL+BREAK ou ESC (COMMAND + ponto no Macintosh). É possível desactivar as interrupções para os procedimentos nas suas aplicações terminar. No entanto, se não desactivar as interrupções de utilizador no procedimento terminar, pode certificar-se de que o procedimento é notificado de quando ocorreu uma interrupção para que possa fechar ficheiros, desligar recursos partilhados ou restaurar variáveis modificadas antes de devolver o controlo da aplicação para o utilizador.Pode aplicar véus interrupções de utilizador em procedimentos de definindo o EnableCancelKey propriedade xlErrorHandler. Quando esta propriedade estiver definida, todas as interrupções irão gerar um tempo de execução erro número 18, aplicados pode ser véus utilizando um erro na instrução. Pode tratar o erro para parar o procedimento e sair do programa. Se for utilizada a instrução de continuar para continuar o procedimento depois de um erro de tempo de execução trapped, a interrupção é ignorada. Também é possível ignorar interrupções de utilizador completamente definindo a propriedade EnableCancelKey para xlDisabled. Neste estado, o Microsoft Excel ignora todas as tentativas pelo utilizador para interromper o procedimento em execução. Para restaurar a interrupção de predefinição de processamento, altere a definição da propriedade EnableCancelKey para xlInterrupt. Impedir que um procedimento desactivar permanentemente as interrupções do utilizador, o Microsoft Excel sempre repõe a predefinição da propriedade EnableCancelKey xlInterrupt sempre que o procedimento conclui a respectiva execução. Para garantir que as interrupções são processadas correctamente no seu código, tem que explicitamente desactive ou as interrupções de trap sempre que o procedimento é executado. Saliente se esse processador apenas uma interrupção pode ser utilizado para cada procedimento e que é utilizado o mesmo processador para todos os erros de tempo de execução encontrados por esse procedimento. O exemplo seguinte demonstra um procedimento que requer um grande período de tempo a concluir. Se um utilizador interrompe o procedimento, aplicados véus um erro. A interrupção de utilizador primeiro confirma que o procedimento, na realidade, deve ser interrompido e, em seguida, sai o procedimento de uma forma ordenada. Declaração de currículoA instrução continuar retoma a execução de código depois de concluir um rotina de tratamento de erro.ReferênciasExcel 97Para mais informações sobre erros de macro do véu, clique no índice de tabulação no Microsoft Excel 97 ajuda do Visual Basic, escreva o seguinte texto erros do véu e faça duplo clique sobre o texto seleccionado para ir para o tópico "Erros detectável". Excel 7.0Para mais informações sobre erros de macro do véu, clique no índice de tabulação no Microsoft Excel 7.0 ajuda, escreva o seguinte texto intercepção de erros e faça duplo clique sobre o texto seleccionado para ir para o tópico "Erro de trap". Excel 5.0"Manual de utilizador do Visual Basic," versão 5.0, capítulo 9, "Processamento de 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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 de Artigos
|






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


Voltar ao topo