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