Symptom

När du kör ett Visual Basic for Applications makro i Microsoft Excel kan du få följande eller liknande felmeddelande:

Körningsfel '1004':Method 'SaveAs' of object '_Worksheet' failed

Orsak

Det här beteendet kan inträffa när båda följande villkor är sanna:

  • Du använder ett Visual Basic for Applications för att spara ett kalkylblad.- och-

  • Du anger filformatet som konstanten xlWorkbookNormal.

Följande kod leder till exempel till att det här felet uppstår:

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

Lösning

Microsoft tillhandahåller programmeringsexempel endast för illustration, utan garantier som vare sig uttrycks eller underförstådda, inklusive, men inte begränsat till, underförstådda garantier om säljbarhet och/eller lämplighet för ett visst ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supportpersonal kan förklara funktionaliteten i en viss procedur, men de ändrar inte de här exemplen för att ge ytterligare funktioner eller skapa procedurer som uppfyller dina specifika behov. Om programmeringsupplevelsen är begränsad kan du kontakta en Certifierad Microsoft-partner eller Microsofts rådgivningstjänster. Mer information finns på Microsofts webbplatser:Microsoft Certified Partners - https://partner.microsoft.com/global/30000104 Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice Mer information om vilka supportalternativ som är tillgängliga och om hur du kontaktar Microsoft finns på Följande Microsoft-webbplats:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS För att komma runt det här beteendet kan du ändra filformatsspecifikationen från konstanten xlWorkbookNormal till 1. Exempelkoden fungerar normalt om den ändras till:

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

OBS! Även om du sparar ett kalkylblad sparas alla kalkylblad i den valda arbetsboken när filformatet är inställt på xlWorkbookNormal eller 1.

Status

Microsoft har bekräftat att det här är ett problem i de Microsoft-produkter som listas i början av den här artikeln.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.