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

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności

Poznaj szkolenia >

Uzyskuj nowe funkcje w pierwszej kolejności

Dołącz do niejawnych testerów firmy Microsoft >

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×