Ознаки
Під час запуску Visual Basic for Applications у програмі Microsoft Excel може з'явитися таке або схоже повідомлення про помилку:
Помилка виконання '1004':
Метод 'SaveAs' об'єкта '_Worksheet'помилка
Причина
Це може статися, якщо виконуються обидві такі умови:
-
Щоб зберегти аркуш, Visual Basic for Applications використовується макрос.
-і- -
Ви вказуєте формат файлу як константу xlWorkbookNormal.
Наприклад, наведений нижче код спричиняє таку помилку:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormal
End Sub
Інші способи вирішення
Корпорація Майкрософт надає приклади програмування тільки для ілюстрації без жодних гарантійних гарантій, зокрема непрямих гарантій придатності до придатності до використання та/або придатності для певної мети. У цій статті припускається, що ви знайомі з демонстрацією мови програмування, а також засобами, які використовуються для створення та налагодження процедур. Фахівці служби підтримки Корпорації Майкрософт можуть допомогти пояснити функціональність певної процедури, але вони не змінюють ці приклади, щоб надати додаткові функції або конструктивні процедури відповідно до своїх потреб.
Якщо у вас обмежена програма, можна звернутися до перевіреного партнера корпорації Майкрософт або консультативних служб Microsoft. Докладні відомості див. на таких веб-сайтах Майкрософт:
Перевірено партнерів корпорації Майкрософт – https://partner.microsoft.com/global/30000104
Microsoft Advisory Services – http://support.microsoft.com/gp/advisoryservice
Щоб отримати докладні відомості про доступні варіанти підтримки та про те, як звернутися до корпорації Майкрософт, відвідайте веб-сайт корпорації Майкрософт: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, які наведено на початку цієї статті.