Sprievodcovia

Ako opraviť chybu chodu 1004 v programe Excel

Chyba spustenia 1004 je kód chyby týkajúci sa jazyka Microsoft Visual Basic, o ktorom je známe, že ovplyvňuje používateľov programu Microsoft Excel. Je známe, že táto chyba je najrozšírenejšia v programoch Excel 2003 a Excel 2007, aj keď žiadna verzia populárnej aplikácie pracovného hárka spoločnosti Microsoft pre počítače nie je v bezpečí pred hrozbou, ktorá predstavuje chybu pri spustení 1004. Vo väčšine prípadov sa používatelia, ktorých sa tento problém týka, zobrazia jeden z dve rôzne variácie chyby chodu 1004. Ako celok dve variácie chyby chodu 1004 znejú:

Chyba za behu „1004“:

Metóda kopírovania triedy pracovného hárka zlyhala

Chyba za behu „1004“:

Chyba definovaná aplikáciou alebo objektom

Presné chybové hlásenie, ktoré vidíte, sa môže v niektorých prípadoch tiež mierne líšiť, hoci chybový kód zostane rovnaký. Bez ohľadu na to, s akou verziou problému sa stretnete, takmer vždy k nemu dôjde pri spustení makra v programe Excel, ktoré je určené na kopírovanie pracovných hárkov a následné kopírovanie do rovnakého zošita ako pôvodný hárok.

Na rozdiel od najhorších technických problémov, ktoré sú k dispozícii, je známa príčina chyby za chodu 1004 v programe Microsoft Excel. Chyba 1004 pri spustení sa vyskytne, keď spustené makro kopíruje pôvodný hárok do zošita s definovaným názvom, ktorý ste neuložili a zatvorili pred spustením makra. Príklad takéhoto makra nájdete v nasledujúcom kóde:

Sub CopySheetTest () Dim iTemp As Integer Dim oBook As Workbook Dim iCounter As Integer 'Vytvorte nový prázdny zošit: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Set oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Pridať definovaný názov do zošita, ktorý sa vzťahuje na rozsah: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= hárok1! $ A $ 1" 'Uložiť zošit: oBook.SaveAs "c: \ test2.xls" „Skopírujte hárok do slučky. Nakoniec sa zobrazí „chyba 1004: Metóda kopírovania triedy„ Pracovný list “zlyhala. Pre iCounter = 1 až 275 oBook.Worksheets (1) .Copy After: = oBook.Worksheets (1) Next End Sub

Pretože je známa príčina chyby chodu 1004 v kontexte programu Microsoft Excel, rovnako ako jej rozlíšenie. Okrem riešenia tohto problému je používateľom, ktorých sa to týka, k dispozícii aj riešenie, ktoré je možné použiť v prípade, že riešenie nefunguje, alebo ak nenájdu riešenie ako životaschopnú možnosť.

Riešenie:

Riešením tohto konkrétneho problému je jednoduchá úprava kódu spusteného makra, aby sa periodicky ukladal a uzatváral cieľový zošit, zatiaľ čo vytvára kópie pracovných hárkov. Kód makra, ktoré to umožňuje, by vyzeral asi takto:

Sub CopySheetTest () Dim iTemp As Integer Dim oBook As Workbook Dim iCounter As Integer 'Create a new blank workbook: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Set oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Add a defined názov do zošita, ktorý sa vzťahuje na rozsah: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= hárok1! $ A $ 1" 'Uložiť zošit: oBook.SaveAs "c: \ test2.xls" „Skopírujte hárok do slučky. Nakoniec sa zobrazí „chyba 1004: Metóda kopírovania triedy„ Pracovný list “zlyhala. Pre iCounter = 1 až 275 oBook.Worksheets (1). Copy After: = oBook.Worksheets (1) 'Odkomentujte tento kód pre riešenie:' Uložiť, zavrieť a znovu otvoriť po každých 100 iteráciách: Ak iCounter Mod 100 = 0 Potom oBook.Close SaveChanges: = Pravda Nastaviť oBook = Nič Nastaviť oBook = Application.Workbooks.Open ("c: \ test2.xls") Koniec Ak Ďalej Koniec Sub

Poznámka: Presný počet prípadov, kedy môžete kopírovať pracovný hárok, kým budete musieť uložiť a zavrieť zošit, do ktorého sa kópie ukladajú, sa líši od prípadu k prípadu, pretože to závisí od veľkosti hárka, z ktorého kopírujete.

Riešenie:

Ako už bolo uvedené, existuje aj riešenie tohto špecifického problému. Vyriešenie tohto problému je jednoduchá záležitosť vloženia nového hárka zo šablóny namiesto vytvorenia kópie existujúceho hárka. Ak by ste chceli tento problém obísť, musíte urobiť nasledovné:

  1. SpustiťExcel.
  2. Vytvoriť nový zošit avymazaťkaždý jeden pracovný hárok, v ktorom pracovný zošit obsahuje, uložte iba jeden.
  3. Formátzošit.
  4. Pridajte jediný text, údaje alebo grafy, ktoré chcete mať v šablóne predvolene, do jediného hárka, ktorý zošit teraz obsahuje.
  5. Ak používate program Excel 2003 alebo starší, kliknite naSúborUložiť ako. Ak používate program Excel 2007 alebo novší, kliknite na ikonuMicrosoft Officetlačidlo a potom kliknite naUložiť ako.
  6. VNázov súboru: do poľa zadajte ľubovoľné meno šablóny, z ktorého chcete volať.
  7. Otvorte rozbaľovaciu ponuku vedľa položkyUložiť ako typ: pole a kliknite naExcelŠablóna (.xlt) ak používate program Excel 2003 alebo starší, aleboExcelŠablóna (.xltx) ak na jeho výber používate program Excel 2007 alebo novší.
  8. Kliknite naUložiť.
  9. Po úspešnom vytvorení šablóny ju môžete vložiť programovo pomocou nasledujúceho riadku kódu:

    Tabuľky. Typ pridania: =cesta\názov súboru

Poznámka: V riadku kódu popísanom vyššie,cesta \ nazov souboru je potrebné nahradiť úplnou cestou (vrátane celého názvu súboru) pre umiestnenie šablóny hárku, ktorú ste práve vytvorili.

$config[zx-auto] not found$config[zx-overlay] not found