ID do artigo: 177634 - Última revisão: quinta-feira, 23 de novembro de 2006 - Revisão: 2.4

XL97: O método de cópia do objeto de folhas de causa falha 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 | Recolher tudo

Sintomas

No Microsoft Excel 97, quando você adiciona folhas programaticamente a uma pasta de trabalho, você pode receber uma das seguintes mensagens de erro:

O Windows 95

Este programa executou uma operação ilegal e será encerrado. Se o problema persistir, contate o fornecedor do programa.
Se você clicar em detalhes, você receber uma mensagem de erro semelhante à seguinte:
O EXCEL causou uma falha de página inválida no módulo MSO97.dll em 0137:30705766.
- ou -
O EXCEL causou uma falha de página inválida no módulo Excel.exe em 015f:3023ab75

Windows NT

Ocorreu um erro de aplicativo e um log de aplicativo está sendo gerado.

Excel.exe
Exceção: acesso violation(0xc0000005), endereço: 0x307de830
e, em seguida, o Excel fecha.
- ou -
Erro em tempo de execução '1004': copiar método da classe planilha Falha

Causa

Esse problema pode ocorrer quando você usar uma instrução loop para copiar uma planilha repetidamente. Para obter um exemplo desse problema, consulte a seção "Mais informações" deste artigo.

Como Contornar

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Este artigo presume que você esteja familiarizado com a linguagem de programação demonstrada e as ferramentas usadas para criar e depurar procedimentos. Profissionais de suporte da Microsoft 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 específicas.
Se você não tenha muita experiência de programação, talvez queira em contato com um Microsoft Certified Partner ou Microsoft Advisory Services. Para obter mais informações, visite da Microsoft:

Microsoft Certified Partners - https://partner.microsoft.com/global/30000104 (https://partner.microsoft.com/global/30000104)

Comunicado de Microsoft Services - 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 entrar em contato com a Microsoft, visite o seguinte site: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;en-us;cntactms) Para contornar esse problema, tente usar código semelhante ao seguinte para copiar planilhas:
 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
				

Situação

A Microsoft confirmou que este é um problema no Microsoft Excel 97. Esse problema não ocorre mais no Microsoft Excel 2000.

Mais Informações

Esse problema ocorre porque sempre que você copia a planilha mesma que um codinome é atribuído à cópia, e se cada vez que a planilha é copiada, que codinome torna mais. Por exemplo, se você copiar sheet1 uma vez, o codinome atribuído à planilha é sheet11. Quando você copia a planilha novamente, é atribuído sheet111 e assim por diante. O codinome tem um número máximo de aproximadamente 35 caracteres. Quando esse limite é atingido, o Excel pára de responder.

Exemplo do problema

Observação: Este exemplo pode causar o Excel parar de responder. Use com cautela.
  1. Inicie o Microsoft Excel 97.
  2. Pressione ALT+F11 para iniciar o Editor do Visual Basic.
  3. No menu Inserir, clique em módulo.
  4. Digite o seguinte na 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. Pressione ALT+F11 para retornar ao Excel.
  6. No menu Ferramentas, aponte para macro e, em seguida, clique em macros. Selecione teste e clique em executar.
A macro irá copiar planilhas no Excel até que ele pára de responder.

Referências

Para obter mais informações sobre a propriedade CodeName, no Editor do Visual Basic, clique no Assistente do Office, codinome a propriedade type, clique em Pesquisar e, em seguida, clique para exibir "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 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: 177634  (http://support.microsoft.com/kb/177634/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.