Симптоми
Когато изпълните макрос на Visual Basic приложения в Microsoft Excel, може да получите следното или подобно съобщение за грешка:
Грешка по време на изпълнение "1004":Методът
"SaveAs" на обекта "_Worksheet" е неуспешен
Причина
Това поведение може да възникне, когато и двете условия са изпълнени:
-
Използвате макрос на Visual Basic за приложения, за да запишете работен лист.
-and- -
Задавате файловия формат като константа xlWorkbookNormal.
Например следният код води до възникване на тази грешка:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormal
End Sub
Заобиколно решение
Microsoft предоставя примери за програмиране само за илюстрация, без гаранция, изразена или подразбирана, включително, но не само, подразбираните гаранции за продаваемост и/или годност за определена цел. Тази статия предполага, че сте запознати с езика на програмиране, който се демонстрира, и инструментите, използвани за създаване и отстраняване на грешки. Специалистите по поддръжката на Microsoft могат да ви помогнат да обясните функционалността на определена процедура, но те няма да променят тези примери, за да предоставят допълнителна функционалност или да изграждат процедури, които да отговарят на вашите конкретни нужди.
Ако имате ограничена програмна работа, може да се свържете със сертифициран партньор на Microsoft или консултантски услуги на Microsoft. За повече информация посетете тези уеб сайтове на Microsoft:
Сертифицирани партньори на Microsoft – https://partner.microsoft.com/global/30000104
Microsoft Advisory Services – http://support.microsoft.com/gp/advisoryservice
За повече информация относно наличните опции за поддръжка и как да се свържете с Microsoft посетете следния уеб сайт на Microsoft:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
За да заобиколите това поведение, променете спецификацията на файловия формат от константата xlWorkbookNormal на 1. Примерните функции за код обикновено се променят на:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1
End Sub
ЗАБЕЛЕЖКА Въпреки че записвате работен лист, всички работни листове в избраната работна книга се записват, когато файловият формат е зададен на xlWorkbookNormal или 1.
Състояние
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са изброени в началото на тази статия.