Mensagem de erro ao usar uma macro VBA para salvar uma pasta de trabalho compartilhada do Excel 2007: "Erro definido pelo aplicativo ou definido pelo objeto"

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: 928283
Sintomas
Quando você tenta executar um Microsoft macro do Visual Basic for Applications (VBA) que salva a pasta de trabalho atual como uma pasta de trabalho compartilhada no Microsoft Office Excel 2007, você receber a seguinte mensagem de erro:
Erro em tempo de execução '1004'
Erro definido pelo aplicativo ou objeto definido.
Causa
Esse problema pode ocorrer se as seguintes condições forem verdadeiras:
  • O formato de gravação padrão é definido como Excel 97-2003. Além disso, uma nova pasta de trabalho é adicionada, e a macro usa o método ProtectSharing ou o método SaveAs contra a nova pasta de trabalho no formato de arquivo do Excel 97-2003.
  • O método ProtectSharing usa a propriedade FileFormat definida como xlExcel8.
Como Contornar
Microsoft 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. No entanto, eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades.

Para contornar esse problema, use um dos seguintes métodos.

Método 1: Definir o formato de arquivo padrão para xlWorkbookNormal

Para utilizar o método ProtectSharing ou o método SaveAs em uma macro do VBA, defina o formato de arquivo padrão para ExcelWokbookNormal no início de sua macro de VBA.

O código VBA a seguir é um exemplo de como usar o método DefaultSaveFormat para definir o formato de arquivo padrão para xlWorkbookNormal.
Application.DefaultSaveFormat = xlWorkbookNormal
Observação Para definir o método DefaultSaveFormat manualmente, execute estas etapas:
  1. Clique no Botão Microsoft Office e, em seguida, clique em Opções do Excel .
  2. Clique em Salvar .
  3. Na caixa Salvar arquivos neste formato , clique no formato no qual deseja que as pastas de trabalho a ser salvo por padrão.
  4. Clique em OK para fechar a caixa de diálogo Opções do Excel .

Método 2: Usar o método SaveAs com o parâmetro AccessMode

Para usar o método SaveAs , use o parâmetro AccessMode .

O seguinte código do VBA é um exemplo de como usar o método SaveAs com o parâmetro AccessMode .
ActiveWorkbook.SaveAs FileName:="filename.xls", AccessMode:=xlShared, FileFormat:=xlExcel8
Observação O valor da propriedade FileFormat deve ser o mesmo valor como o método DefaultSaveFormat .
excel2007 excel2k7 excel12 xl2007 xl2k7 xl12

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 928283 - Última Revisão: 10/15/2007 21:37:27 - Revisão: 1.2

Microsoft Office Excel 2007

  • kbmt kberrmsg kbvba kbmacro kbprogramming kbautomation kbtshoot kbexpertisebeginner kbprb kbpubtypekc KB928283 KbMtpt
Comentários