Symptomy

Po uruchomieniu makra Visual Basic for Applications w programie Microsoft Excel może zostać wyświetlony następujący lub podobny komunikat o błędzie:

Błąd czasu uruchomienia '1004':Metoda "ZapiszAs" obiektu "_Worksheet" nie powiodła się

Przyczyna

To zachowanie może wystąpić, gdy są spełnione oba poniższe warunki:

  • Używasz makra makra Visual Basic for Applications do zapisywania arkusza.— i —

  • Format pliku należy określić jako stałą xlWorkbookNormal.

Poniższy kod powoduje na przykład ten błąd:

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

Obejście

Firma Microsoft podaje przykłady programowania wyłącznie na ilustracji, bez gwarancji jawnych lub dorozumianych, w tym dorozumianych gwarancji przydatności handlowej i/lub przydatności do określonego celu. W tym artykule założono, że znasz język programowania, który jest pokazywany, oraz narzędzia używane do tworzenia i debugowania procedur. Pracownicy pomocy technicznej firmy Microsoft mogą pomóc w objaśnieniach funkcji określonej procedury, ale nie zmodyfikują tych przykładów, aby udostępnić dodatkowe funkcje lub skonstruować procedury w celu zaspokojenia konkretnych potrzeb. Jeśli masz ograniczone środowisko programowania, możesz chcieć skontaktować się z certyfikowanym partnerem firmy Microsoft lub z usługami doradczymi firmy Microsoft. Aby uzyskać więcej informacji, odwiedź następujące witryny sieci Web firmy Microsoft:Certyfikowani partnerzy firmy Microsoft — https://partner.microsoft.com/global/30000104 Program Microsoft Advisory Services — http://support.microsoft.com/gp/advisoryservice Aby uzyskać więcej informacji na temat dostępnych opcji pomocy technicznej i sposobu kontaktowania się z firmą Microsoft, odwiedź następującą witrynę internetową firmy Microsoft:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS Aby zmienić to zachowanie, należy zmienić specyfikację formatu pliku ze stałej xlWorkbookNormal na 1. Przykładowy kod działa normalnie, jeśli został zmieniony na:

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

UWAGA Mimo że zapisywany jest arkusz, wszystkie arkusze w wybranym skoroszycie są zapisywane, gdy format pliku ma wartość xlWorkbookNormal lub 1.

Stan

Firma Microsoft potwierdziła, że jest to usterka występująca w produktach firmy Microsoft wymienionych na początku tego artykułu.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.