Kako popraviti napako časa izvajanja 1004 v Excelu

Napaka 1004 med izvajanjem je koda napake, ki se nanaša na Microsoft Visual Basic, za katero je znano, da vpliva na uporabnike Microsoft Excel. Znano je, da je napaka najbolj razširjena v Excel 2003 in Excel 2007, čeprav nobena različica Microsoftove priljubljene aplikacije delovnega lista za računalnike ni varna pred grožnjo, kot je napaka med izvajanjem 1004. V večini primerov uporabniki, ki jih je ta težava prizadela, vidijo enega od dve različici različice napake med izvajanjem 1004. V celoti se glasita dve različici napake 1004 teka:

" Napaka med izvajanjem" 1004 ":

Način kopiranja razreda delovnega lista ni uspel. "

" Napaka med izvajanjem" 1004 ":

Napaka, definirana s programom ali objektno definirana napaka "

Natančno sporočilo o napaki, ki ga vidite, se lahko v nekaterih primerih tudi nekoliko razlikuje, čeprav bo koda napake ostala enaka. Ne glede na to, katero različico težave imate, pa se skoraj vedno pojavlja med izvajanjem makra v Excelu, ki je zasnovan za kopiranje delovnih listov in nato namestitev kopij v isti delovni zvezek kot izvirni delovni list.

V nasprotju z najhujšimi tehnološkimi težavami tam je vzrok napake 1004 med izvajanjem Microsoft Excel napaka. Napaka 1004 med izvajanjem se pojavi, ko makro, ki ga izvajate, kopira izvirni delovni list v delovni zvezek z določenim imenom, ki ga niste shranili in zaprite, preden zaženete makro. Primer takega makra je razviden iz naslednje kode:

 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 name to the workbook ' that RefersTo a range: oBook.Names.Add Name:="tempRange", _ RefersTo:="=Sheet1!$A$1" ' Save the workbook: oBook.SaveAs "c:\test2.xls" ' Copy the sheet in a loop. Eventually, ' you get error 1004: Copy Method of ' Worksheet class failed. For iCounter = 1 To 275 oBook.Worksheets(1).Copy After:=oBook.Worksheets(1) Next End Sub 

Ker je vzrok napake 1004 med izvajanjem v Microsoft Excelu znan, pa tudi ločljivost. Poleg rešitve tega vprašanja je na voljo tudi uporabnikom, ki jih prizadene, rešitev, ki jo je mogoče uporabiti v primeru, če rešitev ne deluje ali če se jim zdi rešitev rešitev, ki jo je mogoče preživeti.

Rešitev:

Rešitev te posebne težave je, da preprosto uredite kodo makra, ki ga izvajate, da občasno shrani in zapre ciljni delovni zvezek, medtem ko naredi kopije delovnega lista. Koda makronaredbe, ki to naredi, bi bila videti nekako po sledečem:

 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 name to the workbook ' that RefersTo a range: oBook.Names.Add Name:="tempRange", _ RefersTo:="=Sheet1!$A$1" ' Save the workbook: oBook.SaveAs "c:\test2.xls" ' Copy the sheet in a loop. Eventually, ' you get error 1004: Copy Method of ' Worksheet class failed. For iCounter = 1 To 275 oBook.Worksheets(1).Copy After:=oBook.Worksheets(1) 'Uncomment this code for the workaround: 'Save, close, and reopen after every 100 iterations: If iCounter Mod 100 = 0 Then oBook.Close SaveChanges:=True Set oBook = Nothing Set oBook = Application.Workbooks.Open("c:\test2.xls") End If Next End Sub 

Opomba: Točno število kopij delovnega lista, preden morate shraniti in zapreti delovni zvezek, kopije shranjujejo, odvisno od velikosti delovnega lista, odvisno od velikosti delovnega lista, iz katerega izdelujete kopije.

Reševanje:

Kot rečeno, obstaja tudi rešitev tega posebnega problema. Obvladovanje te težave je preprosta stvar vstavljanja novega delovnega lista iz predloge namesto ustvarjanja kopije obstoječega delovnega lista. Če bi radi rešili to težavo, je treba narediti nekaj:

  1. Zaženite Excela .
  2. Ustvarite nov delovni zvezek in izbrišite vsak posamezen delovni list, ki ga vsebuje shrani za enega.

  3. Formatirajte delovni zvezek.
  4. V edini delovni list, ki ga zdaj vsebuje delovni zvezek, dodajte poljubno besedilo, podatke in / ali grafikone, ki jih želite imeti v predlogi po predlogi.
  5. Če uporabljate Excel 2003 ali starejši, kliknite na File > Save As . Če uporabljate Excel 2007 ali novejšo različico, na drugi strani kliknite gumb Microsoft Office in nato kliknite Shrani kot .

  6. V polje Ime datoteke : vnesite, kar želite, da se predloga kliče.
  7. Odprite spustni meni poleg polja Shrani kot vrsto: in kliknite Excel Template (.xlt), če uporabljate Excel 2003 ali starejšo različico, ali Excel Template (.xltx), če uporabljate Excel 2007 ali novejše, da ga izberete.

  8. Kliknite na Shrani .

  9. Ko uspešno ustvarite predlogo, jo lahko vstavite programsko z naslednjo vrstico kode:

    Sheets.Add Type: = pot \ ime datoteke

Opomba: V zgornji vrstici kode je treba ime \ ime datoteke zamenjati s celotno potjo (vključno s celotnim imenom datoteke) za lokacijo predloge, ki ste jo pravkar ustvarili.

Zanimivi Članki