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:=xlWorkbookNormal
End 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:=1
End 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.