Kā izlabot izpildes laika kļūdu 1004 programmā Excel

Izpildes laika kļūda 1004 ir kļūdas kods, kas attiecas uz Microsoft Visual Basic un kas, kā zināms, ietekmē Microsoft Excel lietotājus. Kļūda, kā zināms, ir visizplatītākā programmās Excel 2003 un Excel 2007, lai gan neviena Microsoft populārās datoriem paredzētās darblapas lietojumprogrammas versija nav pasargāta no draudiem, kas ir izpildlaika kļūda 1004. Vairumā gadījumu lietotāji, kurus skar šī problēma, redz vienu no divi dažādi izpildes laika kļūdas 1004. varianti. Kopumā divi izpildes laika kļūdas 1004 varianti ir šādi:

Darbības laika kļūda“ 1004 ”:

Darblapas klases kopēšanas metode neizdevās ”

Darbības laika kļūda“ 1004 ”:

Lietojumprogrammas vai objekta noteikta kļūda ”

Atsevišķos gadījumos precīzi redzamais kļūdas ziņojums var arī nedaudz atšķirties, lai gan kļūdas kods paliks tāds pats. Neatkarīgi no tā, kura problēmas versija jums rodas, tā gandrīz vienmēr rodas, palaižot makro programmā Excel, kas paredzēta darba lapu kopēšanai un pēc tam kopiju ievietošanai tajā pašā darbgrāmatā kā oriģinālajā darblapā.

Atšķirībā no vissliktākajām tehnoloģiju problēmām, kas pastāv, Microsoft Excel darbībā ir zināms RUN laika kļūdas 1004 cēlonis. Izpildes laika kļūda 1004 rodas, kad darbināmā makro kopē oriģinālo darblapu darbgrāmatā ar noteiktu vārdu, kuru nesaglabājāt un aizvērāt pirms makro palaišanas. Šādas makro piemērs ir redzams šādā kodā:

 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 

Tā kā ir zināms darbības laika kļūdas 1004 cēlonis Microsoft Excel kontekstā, tāpat kā izšķirtspēja. Papildus šī jautājuma risinājumam pieejamais risinājums ir pieejams arī lietotājiem, kurus tas skāris, un to var izmantot gadījumā, ja risinājums nedarbojas vai arī viņi neatrod risinājumu kā reālu iespēju.

Atrisinājums:

Šīs īpašās problēmas risinājums ir vienkārši rediģēt jūsu darbināmā makro kodu, lai tas periodiski saglabātu un aizvērtu mērķa darbgrāmatu, kamēr tā kopē darblapas (-u) kopijas. Kods makro, kas to dara, varētu izskatīties šādi:

 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 

Piezīme . Precīzs darblapas kopēšanas reižu skaits, pirms nepieciešams saglabāt un aizvērt darbgrāmatu, kopijas tiek saglabātas dažādos gadījumos, jo tas ir atkarīgs no darblapas, no kuras veidojat kopijas.

Risinājums:

Kā minēts iepriekš, pastāv arī risinājums šai īpašajai problēmai. Apkārt šai problēmai ir vienkārši ievietot jaunu darblapu no veidnes, nevis izveidot esošās darblapas kopiju. Ja vēlaties novērst šo problēmu, rīkojieties šādi:

  1. Palaidiet programmu Excel .
  2. Izveidojiet jaunu darbgrāmatu un izdzēsiet katru darblapu, kurā ir tikai viena darbgrāmata.

  3. Formatējiet darbgrāmatu.
  4. Vienīgo darblapu, kuru tagad satur darbgrāmata, pievienojiet jebkuru tekstu, datus un / vai diagrammas, kuras pēc noklusējuma vēlaties būt veidnē.
  5. Ja jūs izmantojat Excel 2003 vai vecāku versiju, noklikšķiniet uz File > Save As . No otras puses, ja jūs izmantojat Excel 2007 vai jaunāku versiju, noklikšķiniet uz pogas Microsoft Office un pēc tam noklikšķiniet uz Saglabāt kā .

  6. Laukā File name : ierakstiet visu, ko vēlaties saukt par veidni.
  7. Atveriet nolaižamo izvēlni blakus laukam Saglabāt kā veidu: un noklikšķiniet uz Excel veidne (.xlt), ja izmantojat Excel 2003 vai vecāku versiju, vai Excel veidni (.xltx), ja tās izvēlei izmantojat Excel 2007 vai jaunāku versiju.

  8. Noklikšķiniet uz Saglabāt .

  9. Kad esat veiksmīgi izveidojis veidni, varat to ievietot programmatiski, izmantojot šo koda rindu:

    Sheets.Add Type: = ceļš \ faila nosaukums

Piezīme: Iepriekš aprakstītajā koda rindā ceļš \ faila nosaukums ir jāaizstāj ar pilnu ceļu (ieskaitot pilnu faila nosaukumu) tikko izveidotās lapas veidnes atrašanās vietai.

Interesanti Raksti