Oireet
Kun suoritat Visual Basic for Applications makron Microsoft Excel, näyttöön voi tulla seuraava tai vastaava virhesanoma:
Suorituksenaikainen virhe 1004:
objektin "TallennaAs"-menetelmä _Worksheet epäonnistui
Syy
Tämä voi tapahtua, kun molemmat ehdot täyttyvät:
-
Käytät laskentataulukon Visual Basic for Applications makroa.
-ja- -
Tiedostomuoto määritetään vakioksi xlWorkbookNormal.
Esimerkiksi seuraava koodi aiheuttaa tämän virheen:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=xlWorkbookNormal
End Sub
Vaihtoehtoinen menetelmä
Microsoft tarjoaa ohjelmointiesimerkkejä vain kuvitusta varten ilman nimenomaisia tai oletettuja takuita, mukaan lukien mutta ei rajoittuen, epäsuorat takuut soveltuvuudesta kaupankäynnin tarkoituksessa ja/tai soveltuvuudesta tiettyyn tarkoitukseen. Tässä artikkelissa oletetaan, että olet tutustunut käytössä olevan ohjelmointikielen sekä työkalujen luomiseen ja virheenkorjausmenetelmien luomiseen. Microsoftin tukihenkilöt voivat auttaa selittämään tietyn menettelyn toiminnallisuuden, mutta he eivät muokkaa näitä esimerkkejä, jotta ne tarjoasivat lisätoimintoja tai rakentaisi menettelytapoja tarpeisiisi.
Jos ohjelmointikokemus on rajallinen, voit ottaa yhteyttä Microsoftin sertifioituun kumppaniin tai Microsoft Advisory Services -palveluihin. Lisätietoja on seuraavissa Microsoftin verkkosivustoissa:
Microsoft Certified Partners - https://partner.microsoft.com/global/30000104
Microsoft Advisory Services - http://support.microsoft.com/gp/advisoryservice
Lisätietoja saatavilla olevista tukivaihtoehdoista ja yhteyden tavoista ottaa yhteyttä Microsoftiin on seuraavassa Microsoftin verkkosivustossa:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
Voit kiertää tämän ongelman vaihtamalla tiedostomuotomäärityksen vakiosta xlWorkbookNormal muotoon 1. Esimerkkikoodi toimii normaalisti, jos se muutetaan:
Sub A()
Dim myNewSheet As Worksheet
Set myNewSheet = ActiveSheet
FileNameBin = "c:\ABC"
myNewSheet.SaveAs Filename:=FileNameBin, FileFormat:=1
End Sub
HUOMAUTUS Vaikka tallennat laskentataulukon, kaikki valitun työkirjan laskentataulukot tallennetaan, kun tiedostomuodoksi on määritetty xlWorkbookNormal tai 1.
Tila
Microsoft on varmistanut, että tämä on ongelma Microsoft-tuotteissa, jotka luetellaan tämän artikkelin alussa.