Príznaky
Pri spustení makra Visual Basic for Applications v Microsoft Excel sa môže zobraziť nasledujúce alebo podobné chybové hlásenie:
Chyba pri spustení 1004:
Metóda SaveAs objektu _Worksheet zlyhala
Príčina
Toto správanie sa môže vyskytnúť, ak sú splnené obe nasledujúce podmienky:
-
Na uloženie hárka používate Visual Basic for Applications.
-a- -
Formát súboru určíte ako konštantu xlWorkbookNormal.
Nasledujúci kód napríklad spôsobuje výskyt tejto chyby:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormal
End Sub
Alternatívne riešenie
Spoločnosť Microsoft poskytuje príklady programovania iba na ilustráciu, bez výslovnej alebo implicitnej záruky vrátane, ale nie však obmedzené, implicitných záruk obchodovateľnosti a/alebo vhodnosti na konkrétny účel. V tomto článku sa predpokladá, že ste oboznámení s možnosťami programovania a nástrojmi, ktoré sa používajú na vytvorenie a ladenie procedúr. Profesionáli technickej podpory spoločnosti Microsoft vám môžu pomôcť vysvetliť funkčnosť konkrétneho postupu, ale tieto príklady nebudú môcť upraviť a poskytnúť nové funkcie alebo vytvoriť procedúry podľa vašich konkrétnych potrieb.
Ak máte obmedzené možnosti programovania, môžete kontaktovať certifikovaného partnera spoločnosti Microsoft alebo služby Microsoft Advisory Services. Ďalšie informácie nájdete na týchto webových lokalitách spoločnosti Microsoft:
Certifikovaný partneri spoločnosti Microsoft – https://partner.microsoft.com/global/30000104
Microsoft Advisory Services – http://support.microsoft.com/gp/advisoryservice
Ďalšie informácie o dostupných možnostiach podpory a o tom, ako kontaktovať spoločnosť Microsoft, nájdete na nasledujúcej webovej lokalite spoločnosti Microsoft:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
Ak chcete obísť toto správanie, zmeňte špecifikáciu formátu súboru z konštanty xlWorkbookNormal na 1. Vzorové funkcie kódu sa normálne zmenia na:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1
End Sub
POZNÁMKA Keď uložíte hárok, všetky hárky vo vybratom zošite sa uložia, keď je formát súboru nastavený na xlWorkbookNormal alebo 1.
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené na začiatku tohto článku.