Artigo: 177634 - Última revisão: quinta-feira, 23 de Novembro de 2006 - Revisão: 2.4

XL97: Método de cópia do objecto de folhas devido a erro de página inválida

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

No Microsoft Excel 97, quando adicionar programaticamente folhas a um livro, poderá receber uma das seguintes mensagens de erro:

O Windows 95

Este programa efectuou uma operação ilegal e será encerrado. Se o problema persistir, contacte o fabricante do programa.
Se clicar em detalhes, receberá uma mensagem de erro semelhante à seguinte:
EXCEL causou um erro de página inválida no módulo MSO97.DLL em 0137:30705766.
- ou -
EXCEL causou um erro de página inválida no módulo Excel.exe em 015f:3023ab75

Windows NT

Ocorreu um erro de aplicação e está ser gerado um registo de aplicação.

Excel.exe
Excepção: acesso violation(0xc0000005), endereço: 0x307de830
e, em seguida, o Excel é encerrado.
- ou -
Run-time error '1004': método de classe de folha de cálculo não foi possível copiar

Causa

Este problema poderá ocorrer quando utiliza uma instrução de loop para copiar uma folha de cálculo repetidamente. Para obter um exemplo deste problema, consulte a secção "Mais informação" deste artigo.

Como contornar

Microsoft fornece exemplos de programação ilustração só, sem garantia expressa ou implícita, incluindo, sem limitação, garantias implícitas de comercialização e/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 utilizadas para criar e depurar procedimentos. Profissionais 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.
Se dispõe de limitada experiência de programação, poderá contactar um Microsoft Certified Partner ou a serviços de aviso. Para obter mais informações, visite estes Web sites da Microsoft:

Microsoft certificado Partner - https://partner.microsoft.com/global/30000104 (https://partner.microsoft.com/global/30000104)

Serviços Microsoft aviso - http://support.microsoft.com/gp/advisoryservice (http://support.microsoft.com/gp/advisoryservice)

Para obter mais informações sobre as opções de suporte estão disponíveis e sobre como contactar a Microsoft, visite o seguinte Web site da Microsoft: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;en-us;cntactms) Para contornar este problema, tente utilizar código semelhante ao seguinte para copiar folhas de cálculo:
 Sub Copy Sheets()

    For x = 1 To 300
        Sheets.Add
        Workbooks("YourWorkBook.xls").Sheets("sheet1").Cells.Copy
        ActiveSheet.Paste
        Workbooks("YourWorkBook.xls").Sheets("sheet1").Select
    Next x

 End Sub
				

Ponto Da Situação

Microsoft confirmou que este problema existe no Microsoft Excel 97. Este problema não ocorre no Microsoft Excel 2000.

Mais Informação

Este problema ocorre porque sempre que copie a mesma folha que é atribuído um nome de código a cópia e sempre que a folha é copiada, esse nome de código fica maior. Por exemplo, se copiar uma vez Folha1, o nome de código atribuído a folha é sheet11. Quando copiar novamente a folha, é atribuído sheet111 e assim sucessivamente. O nome de código tem um número máximo de cerca de 35 caracteres. Quando este limite é atingido, o Excel deixa de responder.

Exemplo do problema

NOTA: Este exemplo poderá provocar o Excel deixar de responder. Utilize com prudência.
  1. Inicie o Microsoft Excel 97.
  2. Prima ALT+F11 para iniciar o Editor do Visual Basic.
  3. No menu Inserir, clique em módulo.
  4. Escreva o seguinte numa nova folha de módulo:
          Sub test()
             For x = 1 To 300
                ActiveSheet.Copy before:=Sheets(1)
                Sheets(1).Select
             Next x
          End Sub
    					
  5. Prima ALT+F11 para regressar ao Excel.
  6. No menu Ferramentas, aponte para macro e, em seguida, clique em macros. Seleccione teste e clique em executar.
A macro irá copiar folhas no Excel até deixar de responder.

Referências

Para mais informações sobre a propriedade CodeName, a partir do Editor do Visual Basic, faça clique sobre o Assistente do Office, escreva propriedade de nome de código , clique em Procurar e, em seguida, clique aqui para visualizar "CodeName propriedade."


A informação contida neste artigo aplica-se a:
  • Microsoft Excel 97 Standard Edition
Palavras-chave: 
kbmt kbbug kbdtacode kberrmsg KB177634 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: 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: 177634  (http://support.microsoft.com/kb/177634/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.