Simptomai
Kai vykdote makrokomandą Visual Basic for Applications" Microsoft Excel, galite gauti tokį arba panašų klaidos pranešimą:
Vykdymo laiko klaida "1004":
Objekto "_Worksheet" metodas "SaveAs" nepavyko
Priežastis
Taip gali nutikti, kai abi šios sąlygos yra tikros:
-
Norėdami įrašyti darbalapį, Visual Basic naudojate makrokomandą Programos.
-and- -
Failo formatą nurodote kaip konstantą xlWorkbookNormal.
Pvz., šis kodas sukelia šią klaidą:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormal
End Sub
Sprendimas
"Microsoft" pateikia tik programavimo pavyzdžius, be išreikštų ar numanomų garantijų, įskaitant numanomas tinkamumo naudoti ir (arba) tinkamumo konkrečiam tikslui garantijas, bet tuo neapsiribojant. Šiame straipsnyje daroma prielaida, kad esate susipažinę su demonstruotima programavimo kalba ir įrankiais, naudojamais procedūroms kurti ir derinti. "Microsoft" palaikymo specialistai gali padėti paaiškinti konkrečios procedūros funkcijas, tačiau jie ne modifikuos šių pavyzdžių, kad galėtų teikti papildomas funkcijas arba kurti procedūras, kad atitiktų jūsų konkrečius poreikius.
Jei turite ribotą programavimo patirtį, galite kreiptis į "Microsoft" sertifikuotą partnerį arba "Microsoft" konsultavimo paslaugas. Daugiau informacijos rasite šiose "Microsoft" žiniatinklio svetainėse:
"Microsoft" sertifikuoti partneriai – "https://partner.microsoft.com/global/30000104
Microsoft" konsultavimo paslaugos – http://support.microsoft.com/gp/advisoryservice Daugiau
informacijos apie galimas palaikymo parinktis ir apie tai, kaip susisiekti su "Microsoft", apsilankykite šioje "Microsoft" svetainėje:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
Norėdami išspręsti šią problemą, pakeiskite failo formato specifikaciją iš konstantos xlWorkbookNormal į 1. Kodo pavyzdžio funkcijos paprastai, jei pakeistos į:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1
End Sub
PASTABA Net jei įrašote darbalapį, visi pasirinktos darbaknygės darbalapiai įrašomi, kai failo formatas nustatytas kaip xlWorkbookNormal arba 1.
Būsena
"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų šio straipsnio pradžioje, problema.