Jelenségek

Ha egy makrót Visual Basic for Applications a Microsoft Excel, a következő vagy hasonló hibaüzenet jelenhet meg:

Nem sikerült futtatni a "1004_Worksheet "SaveAs" metódust

A probléma oka

Ez a viselkedés akkor fordulhat elő, ha mindkét alábbi feltétel teljesül:

  • Munkalap mentésekor Visual Basic for Applications makrót.– és-

  • A fájlformátumot az xlWorkbookNormal állandóként adhatja meg.

Például a következő kód okozza ezt a hibát:

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

Kerülő megoldás

A Microsoft csak illusztrációkhoz biztosít programozási példákat, kifejezett vagy vélelmezett garancia nélkül, beleértve többek között a forgalomképességre és/vagy adott célra való alkalmasságra vonatkozó vélelmezett garanciát. Ez a cikk abból indul ki, hogy Ismeri a bemutatható programozási nyelvet, valamint az eljárások létrehozására és a hibakeresésre használt eszközöket. A Microsoft terméktámogatási szakemberei elmagyarázzák egy adott eljárás funkcióját, de nem módosítják ezeket a példákat úgy, hogy az egyéni igényeknek megfelelő további funkciókat vagy eljárásokat építsen ki. Ha korlátozott programozási tapasztalatai vannak, forduljon egy Microsoft Certified Partnerhez vagy a Microsoft tanácsadó szolgáltatásaihoz. További információért keresse fel a Microsoft webhelyeit:Microsoft Certified Partners - https://partner.microsoft.com/global/30000104 Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice További információ az elérhető támogatási lehetőségekről és a Microsoft kapcsolatfelvételi lehetőségeiről, látogasson el a Microsoft alábbi webhelyére:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS Ezt a viselkedést úgy lehet módosítani, hogy az xlWorkbookNormal állandóról 1-re módosítja a fájlformátum specifikációját. A példakód a szokásos módon működik, ha a következőre módosul:

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

MEGJEGYZÉS: Annak ellenére, hogy munkalapot ment, a kijelölt munkafüzet minden munkalapját menti a program, ha a fájlformátum xlWorkbookNormal vagy 1.

Állapot

A Microsoft megerősítette, hogy a cikkben tárgyalt jelenség a cikk elején felsorolt termékek hibájára vezethető vissza. 

További segítségre van szüksége?

További lehetőségeket szeretne?

Fedezze fel az előfizetés előnyeit, böngésszen az oktatóanyagok között, ismerje meg, hogyan teheti biztonságossá eszközét, és így tovább.