Oppaat

Kuinka korjata ajonaikainen virhe 1004 Excelissä

Ajonaikainen virhe 1004 on Microsoft Visual Basiciin liittyvä virhekoodi, jonka tiedetään vaikuttavan Microsoft Excel -käyttäjiin. Virheen tiedetään olevan yleisimpiä Excel 2003: ssa ja Excel 2007: ssä, vaikka mikään Microsoftin suositun tietokoneille tarkoitetun laskentataulukosovelluksen versio ei ole suojattu uhalta, joka on Run-time -virhe 1004. Useimmissa tapauksissa tämän ongelman kohteena olevat käyttäjät näkevät yhden kaksi erilaista ajonaikaisen virheen 1004 muunnosta, kokonaisuudessaan ajonaikaisen virheen 1004 kaksi muunnosta ovat seuraavat:

Ajonaikainen virhe ’1004’:

Laskentataulukon luokan kopiointimenetelmä epäonnistui

Ajonaikainen virhe ’1004’:

Sovelluksen tai objektin määrittämä virhe

Tarkka virheilmoitus voi myös vaihdella hieman, joissakin tapauksissa, vaikka virhekoodi pysyy samana. Riippumatta siitä, mikä ongelman versio sinulla on, se tapahtuu kuitenkin melkein aina, kun suoritetaan makro Excelissä, joka on suunniteltu kopioimaan laskentataulukot ja asettamaan kopiot samaan työkirjaan kuin alkuperäinen laskentataulukko.

Toisin kuin pahimmat tekniset ongelmat, Microsoft Excelin ajonaikaisen virheen 1004 syy tunnetaan. Ajonaikainen virhe 1004 tapahtuu, kun käyttämäsi makro kopioi alkuperäisen laskentataulukon työkirjaan määritetyllä nimellä, jota et tallentanut ja suljet ennen makron suorittamista. Esimerkki tällaisesta makrosta voidaan nähdä seuraavassa koodissa:

Sub CopySheetTest () Himmennä iTemp kuin kokonaisluku Dim oBook as työkirja Dim iCounter kuin kokonaisluku 'Luo uusi tyhjä työkirja: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Aseta oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Lisää määritelty nimi työkirjaan, joka viittaa alueeseen: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= Sheet1! $ A $ 1" 'Tallenna työkirja: oBook.SaveAs "c: \ test2.xls" 'Kopioi arkki silmukkaan. Lopulta 'saat virheen 1004: Taulukoluokan kopiointimenetelmä epäonnistui. ICounterille = 1 - 275 oBook.Worksheets (1) .Copy After: = oBook.Worksheets (1) Next End Sub

Koska ajonaikaisen virheen 1004 syy on tiedossa Microsoft Excelin yhteydessä, samoin kuin resoluutio. Tämän ongelman ratkaisun lisäksi se, mitä myös ongelman kohteena olevat käyttäjät voivat käyttää, on kiertotapa, jota voidaan käyttää siinä tapauksessa, että ratkaisu ei toimi tai jos he eivät löydä ratkaisua toimivaksi vaihtoehdoksi.

Ratkaisu:

Ratkaisu tähän ongelmaan on yksinkertaisesti muokata suorittamasi makron koodia, jotta se voidaan tallentaa ja sulkea ajoittain kohdetyökirja samalla, kun se tekee kopioita laskentataulukosta. Tätä tekevän makron koodi näyttää jotain seuraavalta:

Sub CopySheetTest () Himmennä iTemp kuin kokonaisluku Dim oBook as työkirja Dim iCounter kuin kokonaisluku 'Luo uusi tyhjä työkirja: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Aseta oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Lisää määritelty nimi työkirjaan, joka viittaa alueelle: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= Sheet1! $ A $ 1" 'Tallenna työkirja: oBook.SaveAs "c: \ test2.xls" 'Kopioi arkki silmukkaan. Lopulta 'saat virheen 1004: Taulukko-luokan kopiointimenetelmä epäonnistui. ICounter = 1 - 275 oBook.Worksheets (1). Kopioi jälkeen: = oBook.Worksheets (1) 'Kommentoi tätä kiertotavan koodia:' Tallenna, sulje ja avaa uudelleen joka 100. iteraatio: Jos iCounter Mod 100 = 0 oBook.Close SaveChanges: = True Set oBook = Nothing Set oBook = Application.Workbooks.Open ("c: \ test2.xls") Loppu, jos Seuraava loppu

merkintä: Laskentataulukon kopiointien tarkka määrä, ennen kuin sinun on tallennettava ja suljettava työkirja, johon kopiot tallennetaan, vaihtelee tapauskohtaisesti, koska se riippuu kopioitavan laskentataulukon koosta.

Kiertotapa:

Kuten aiemmin todettiin, on olemassa myös kiertotapa tähän erityiseen ongelmaan. Tämän ongelman kiertäminen on yksinkertaista lisätä uusi laskentataulukko mallista sen sijaan, että luot kopion olemassa olevasta laskentataulukosta. Jos haluat kiertää tämän ongelman, toimi seuraavasti:

  1. Tuoda markkinoilleExcel.
  2. Luo uusi työkirja japoistaajokainen työkirja sisältää työkirjan tallennuksen yhdelle.
  3. Muototyökirja.
  4. Lisää kaikki tekstit, tiedot ja / tai kaaviot, jotka haluat oletuksena malliin, ainoaan työkirjaan, jonka työkirja nyt sisältää.
  5. Jos käytät Excel 2003: aa tai vanhempaa, napsautaTiedostoTallenna nimellä. Jos käytät Excel 2007: ää tai uudempaa, napsautaMicrosoft Office-painiketta ja napsauta sittenTallenna nimellä.
  6. vuonnaTiedoston nimi: -kenttään, kirjoita haluamasi malli.
  7. Avaa avattava valikko vieressäTallenna tyyppi: -kenttään ja napsautaExcelMalli (.xlt) jos käytät Excel 2003: aa tai vanhempaa, taiExcelMalli (.xltx) jos valitset sen Excel 2007: llä tai uudemmalla.
  8. KlikkaaTallentaa.
  9. Kun olet luonut mallin onnistuneesti, voit lisätä sen ohjelmallisesti seuraavalla koodirivillä:

    Sheets.Add Type: =polku\Tiedoston nimi

merkintä: Yllä kuvatulla koodirivilläpolku \ tiedostonimi on korvattava juuri luomasi taulukomallin sijainnin täydellä polulla (mukaan lukien koko tiedostonimi).