Gidai

Kaip ištaisyti vykdymo laiko klaidą 1004 „Excel“

Vykdymo laiko klaida 1004 yra klaidos kodas, susijęs su „Microsoft Visual Basic“, kuris, kaip žinoma, paveikė „Microsoft Excel“ vartotojus. Žinoma, kad klaida yra labiausiai paplitusi „Excel 2003“ ir „Excel 2007“, nors nė viena populiari Microsoft kompiuterio darbalapio programa nėra apsaugota nuo grėsmės, kuri yra „Run-time error 1004“. Daugeliu atvejų vartotojai, kuriuos paveikė ši problema, mato vieną iš du skirtingi vykdymo laiko klaidos 1004 variantai. Visi du 1004 vykdymo laiko klaidos variantai yra tokie:

Vykdymo laiko klaida „1004“:

Nepavyko nukopijuoti darbalapio klasės metodo

Vykdymo laiko klaida „1004“:

Programos arba objekto apibrėžta klaida

Tikslus klaidos pranešimas, kurį matote, taip pat kai kuriais atvejais gali šiek tiek skirtis, nors klaidos kodas išliks tas pats. Nepaisant to, kurią problemos versiją patiriate, tačiau ji beveik visada atsiranda vykdant „Excel“ makrokomandą, skirtą kopijuoti darbalapius ir tada įdėti kopijas į tą pačią darbaknygę kaip ir pradinis darbalapis.

Skirtingai nuo pačių didžiausių techninių problemų, žinoma „Microsoft Excel“ vykdymo laiko klaidos 1004 priežastis. Vykdymo laiko klaida 1004 įvyksta, kai vykdoma makrokomanda kopijuoja pradinį darbalapį į darbaknygę su apibrėžtu vardu, kurio neišsaugojote ir uždarėte prieš vykdydami makrokomandą. Tokios makrokomandos pavyzdį galima pamatyti šiame kode:

Sub CopySheetTest () Dim iTemp kaip sveikas Dim oBook As Workbook Dim iCounter As Sveikas 'Sukurkite naują tuščią darbaknygę: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Nustatykite oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Pridėti apibrėžtą darbaknygės pavadinimas, kuris nurodo diapazoną: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= Sheet1! $ A $ 1" 'Išsaugokite darbaknygę: oBook.SaveAs "c: \ test2.xls" 'Nukopijuokite lapą kilpa. Galų gale, gausite klaidą 1004: Nepavyko kopijuoti „darbalapio“ metodo. „ICounter“ = nuo 1 iki 275 „oBook“. Darbo lapai (1). Nukopijuokite po: = oBook. Darbo lapai (1) Kitas galas

Kadangi yra žinoma 1004 vykdymo laiko klaidos priežastis „Microsoft Excel“ kontekste, kaip ir rezoliucija. Be šios problemos sprendimo, tai taip pat yra sprendimas, kurį gali paveikti vartotojai, yra sprendimas, kurį galima naudoti tuo atveju, jei sprendimas neveikia arba jie nemano, kad sprendimas yra perspektyvus variantas.

Sprendimas:

Šios konkrečios problemos sprendimas yra paprasčiausiai redaguoti vykdomos makrokodos kodą, kad jis periodiškai išsaugotų ir uždarytų tikslinę darbaknygę, kol ji kopijuos darbalapį (-ius). Tai atliekančios makrokomandos kodas atrodys panašiai kaip:

Sub CopySheetTest () Dim iTemp kaip sveikas Dim oBook As Workbook Dim iCounter As Sveikas 'Sukurkite naują tuščią darbaknygę: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Nustatykite oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Pridėti apibrėžtą darbaknygės pavadinimas, kuris nurodo diapazoną: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= Sheet1! $ A $ 1" 'Išsaugokite darbaknygę: oBook.SaveAs "c: \ test2.xls" 'Nukopijuokite lapą kilpa. Galų gale, gausite klaidą 1004: Nepavyko kopijuoti „darbalapio“ metodo. „ICounter“ = nuo 1 iki 275 „oBook.Worksheets“ (1). Nukopijuokite po: = oBook.Worksheets (1) „Atšaukite šį kodą, kad išvengtumėte problemos:„ Išsaugokite, uždarykite ir atidarykite dar kartą po 100 kartojimų: jei „iCounter Mod 100“ = 0 oBook.Close SaveChanges: = Tikras rinkinys oBook = Nieko nenustatytas oBook = Application.Workbooks.Open ("c: \ test2.xls") Pabaiga, jei kita pabaiga

Pastaba: Tikslus skaičius, kiek kartų galite nukopijuoti darbalapį, prieš išsaugodami ir uždarydami darbaknygę, kurioje saugomos kopijos, kiekvienu atveju skiriasi, nes tai priklauso nuo darbalapio, kurio kopijas darote, dydžio.

Sprendimas:

Kaip minėta anksčiau, taip pat yra šios specifinės problemos sprendimo būdas. Išspręsti šią problemą yra paprastas dalykas - įterpti naują darbalapį iš šablono, o ne kurti esamą darbalapį. Jei norite išspręsti šią problemą, atlikite šiuos veiksmus:

  1. Paleiskite„Excel“.
  2. Sukurkite naują darbaknygę irIštrintikiekviename darbalapyje darbaknygėje yra vienas.
  3. Formatasdarbaknygę.
  4. Pridėkite bet kokį tekstą, duomenis ir (arba) diagramas, kurias norite turėti šablone pagal numatytuosius nustatymus, į vienintelį darbalapį, kurį dabar sudaro darbaknygė.
  5. Jei naudojate „Excel 2003“ ar ankstesnę versiją, spustelėkiteFailasIšsaugoti kaip. Kita vertus, jei naudojate „Excel 2007“ ar naujesnę versiją, spustelėkite„Microsoft Office“mygtuką ir tada spustelėkiteIšsaugoti kaip.
  6. Viduje konorsFailo pavadinimas: lauką, įveskite bet kokį šablono pavadinimą.
  7. Atidarykite išskleidžiamąjį meniu šaliaIšsaugoti kaip tipą: lauką ir spustelėkite„Excel“Šablonas (.xlt) jei naudojate „Excel 2003“ ar ankstesnę versiją, arba„Excel“Šablonas (.xltx) jei naudojate „Excel 2007“ ar naujesnę versiją, kad ją pasirinktumėte.
  8. SpustelėkiteSutaupyti.
  9. Sėkmingai sukūrę šabloną, galite jį programiškai įterpti naudodami šią kodo eilutę:

    Lakštai. Pridėti tipą: =kelias\failo pavadinimas

Pastaba: Pirmiau aprašytoje kodo eilutėjekelias \ failo vardas ką tik sukurtą lapo šabloną reikia pakeisti visu keliu (įskaitant visą failo pavadinimą).

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