Vejledninger

Sådan rettes kørselstidsfejl 1004 i Excel

Kørselsfejl 1004 er en fejlkode, der vedrører Microsoft Visual Basic, der har været kendt for at påvirke Microsoft Excel-brugere. Fejlen vides at være mest udbredt på Excel 2003 og Excel 2007, selvom ingen version af Microsofts populære regnearksapplikation til computere er sikker fra den trussel, der er Run-time error 1004. I de fleste tilfælde ser brugere, der er berørt af dette problem, to forskellige variationer af Run-time error 1004. I deres helhed læser de to variationer af Run-time error 1004:

Kørselsfejl '1004':

Kopimetoden for regnearkklassen mislykkedes

Kørselsfejl '1004':

Applikationsdefineret eller objektdefineret fejl

Den nøjagtige fejlmeddelelse, du ser, kan også variere lidt, i nogle få tilfælde, selvom fejlkoden forbliver den samme. Uanset hvilken version af problemet du oplever, forekommer det næsten altid, når du kører en makro i Excel, der er designet til at kopiere regneark og derefter placere kopierne i samme projektmappe som det originale regneark.

I modsætning til de værste tekniske problemer derude er årsagen til Run-time fejl 1004 inden for Microsoft Excel kendt. Kørselstidsfejl 1004 opstår, når makroen, du kører, kopierer det originale regneark til en projektmappe med et defineret navn, som du ikke gemte og lukkede, før du kørte makroen. Et eksempel på en sådan makro kan ses i følgende kode:

Sub CopySheetTest () Dim iTemp som heltal Dim oBook som projektmappe Dim iCounter som heltal 'Opret en ny tom projektmappe: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Set oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Tilføj en defineret navn til projektmappen 'der henviser til et interval: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= Sheet1! $ A $ 1"' Gem projektmappen: oBook.SaveAs "c: \ test2.xls" 'Kopier arket i en løkke. Til sidst får du fejl 1004: Kopimetode til regneark klasse mislykkedes. For iCounter = 1 til 275 oBook.Worksheets (1) .Kopi efter: = oBook.Worksheets (1) Next End Sub

Da årsagen til kørselstidsfejl 1004 i forbindelse med Microsoft Excel er kendt, ligesom opløsningen er kendt. Ud over en løsning på dette problem, hvad der også er tilgængeligt for brugere, der er berørt af det, er en løsning, der kan bruges i tilfælde af, at løsningen ikke fungerer, eller de ikke finder løsningen at være en levedygtig mulighed.

Løsningen:

Løsningen på dette specifikke problem er simpelthen at redigere koden til den makro, du kører, så den med jævne mellemrum gemmer og lukker målmappen, mens den laver kopier af regnearket / regnearkene. Koden til en makro, der gør dette, vil se noget ud som følgende:

Sub CopySheetTest () Dim iTemp som heltal Dim oBook som projektmappe Dim iCounter som heltal 'Opret en ny tom projektmappe: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Set oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Tilføj en defineret navn til projektmappen 'der henviser til et interval: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= Sheet1! $ A $ 1"' Gem projektmappen: oBook.SaveAs "c: \ test2.xls" 'Kopier arket i en løkke. Til sidst får du fejl 1004: Kopimetode til regneark klasse mislykkedes. For iCounter = 1 til 275 oBook.Worksheets (1) .Kopier efter: = oBook.Worksheets (1) 'Fjern kommentar til denne kode til løsningen:' Gem, luk og åbn igen efter hver 100 iterationer: Hvis iCounter Mod 100 = 0 Så oBook.Close SaveChanges: = True Set oBook = Intet Set oBook = Application.Workbooks.Open ("c: \ test2.xls") Afslut hvis næste ende Sub

Bemærk: Det nøjagtige antal gange, du kan kopiere et regneark, før du skal gemme og lukke den projektmappe, hvor kopierne gemmes, varierer fra sag til sag, da det afhænger af størrelsen på det regneark, du laver kopier af.

Løsningen:

Som tidligere nævnt findes der også en løsning på dette specifikke problem. At omgå dette problem er et simpelt spørgsmål om at indsætte et nyt regneark fra en skabelon i stedet for at oprette en kopi af et eksisterende regneark. Hvis du gerne vil løse dette problem, skal du gøre følgende:

  1. StartExcel.
  2. Opret en ny projektmappe, ogslethvert eneste regneark, projektmappen indeholder, gem til et.
  3. Formatprojektmappen.
  4. Føj tekst, data og / eller diagrammer, som du ønsker at have i skabelonen som standard, til det eneste regneark, som projektmappen nu indeholder.
  5. Hvis du bruger Excel 2003 eller tidligere, skal du klikke påFilGem som. Hvis du på den anden side bruger Excel 2007 eller nyere, skal du klikke påMicrosoft Officeog klik derefter påGem som.
  6. IFilnavn: felt, skal du indtaste det, du ønsker, at skabelonen skal kaldes.
  7. Åbn rullemenuen ved siden afGem som type: felt og klik påExcelSkabelon (.xlt) hvis du bruger Excel 2003 eller tidligere, ellerExcelSkabelon (.xltx) hvis du bruger Excel 2007 eller nyere til at vælge det.
  8. Klik påGemme.
  9. Når du har oprettet skabelonen, kan du indsætte den programmatisk ved hjælp af følgende kodelinje:

    Ark. Tilføj type: =sti\filnavn

Bemærk: I kodelinjen beskrevet ovenfor,sti \ filnavn skal erstattes med den fulde sti (inklusive det komplette filnavn) for placeringen af ​​den arkskabelon, du lige har oprettet.