Sintomas

Ao executar uma macro Visual Basic for Applications macro no Microsoft Excel, poderá receber a seguinte mensagem de erro ou semelhante:

Erro de tempo de executar '1004':Método 'SaveAs' de objeto '_Worksheet' falhou

Causa

Este comportamento pode ocorrer quando ambas as seguintes condições são verdadeiras:

  • Está a utilizar uma macro Visual Basic for Applications macro para guardar uma nova.-e-

  • Especifique o formato de ficheiro como xlWorkbookNormal constante.

Por exemplo, o seguinte código faz com que este erro ocorra:

Sub A()   Dim myNewSheet As Worksheet   Set myNewSheet = ActiveSheet   FileNameBin = "c:\ABC"   myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormalEnd Sub

Solução

A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, sem limitação, as garantias implícitas de comerciante e/ou adequação a um fim específico. Este artigo assume que está familiarizado com a linguagem de programação a ser demonstrada e com as ferramentas utilizadas para criar e depurar procedimentos. Os profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificam estes exemplos de forma a fornecerem funcionalidades ou procedimentos de construção que se adequam às suas necessidades específicas. Se tiver uma experiência de programação limitada, recomendamos que contacte um Microsoft Certified Partner ou os Serviços de Aviso da Microsoft. Para obter mais informações, visite estes Web sites da Microsoft:Microsoft Certified Partners - https://partner.microsoft.com/global/30000104 Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice Para obter mais informações sobre as opções de suporte disponíveis e sobre como contactar a Microsoft, visite o seguinte site da Microsoft:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS Para contornar este comportamento, altere a especificação do formato de ficheiro do xlWorkbookNormal constante para 1. O código de exemplo funciona normalmente se for alterado para:

Sub A()   Dim myNewSheet As Worksheet   Set myNewSheet = ActiveSheet   FileNameBin = "c:\ABC"   myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1End Sub

NOTA Apesar de estar a guardar uma livro, todas as livros no livro selecionado são guardadas quando o formato de ficheiro está definido como xlWorkbookNormal ou 1.

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados no início deste artigo.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.