Bagaimana untuk Betulkan Ralat Masa Ralat 1004 dalam Excel

Kesilapan run-time 1004 adalah kod ralat berkaitan dengan Microsoft Visual Basic yang telah diketahui mempengaruhi pengguna Microsoft Excel. Kesalahan ini diketahui paling lazim di Excel 2003 dan Excel 2007, walaupun tiada versi aplikasi lembaran kerja popular Microsoft untuk komputer adalah selamat dari ancaman yang merupakan ralat Run-time 1004. Dalam kebanyakan kes, pengguna yang terkena masalah ini melihat salah satu daripada dua variasi variasi ralat Run-time 1004. Secara keseluruhannya, dua variasi ralat Run-time 1004 dibaca:

" Kesilapan run-time '1004':

Salin Kaedah Kelas Lembaran Kerja gagal "

" Kesilapan run-time '1004':

Kesalahan yang ditakrifkan oleh aplikasi atau ralat objek "

Mesej ralat tepat yang anda lihat mungkin juga sedikit berbeza, dalam beberapa kes, walaupun kod ralat akan tetap sama. Walau apa pun versi isu yang anda alami, bagaimanapun, ia hampir selalu berlaku semasa menjalankan makro di Excel yang direka untuk menyalin lembaran kerja dan kemudian meletakkan salinan ke dalam buku kerja yang sama sebagai lembaran kerja asal.

Tidak seperti masalah teknologi yang paling teruk di luar sana, punca ralat Run-time 1004 dalam Microsoft Excel diketahui. Kesalahan run-time 1004 berlaku apabila makro yang anda jalankan menyalin lembaran kerja asal ke buku kerja dengan nama yang ditentukan yang anda tidak simpan dan tutup sebelum anda menjalankan makro. Contoh makro seperti itu boleh dilihat dalam kod berikut:

 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 

Sejak punca ralat Run-time 1004 dalam konteks Microsoft Excel diketahui, seperti resolusi. Di samping penyelesaian kepada isu ini, apa yang juga tersedia kepada pengguna yang dipengaruhi olehnya adalah penyelesaian yang boleh digunakan sekiranya penyelesaian tidak berfungsi atau mereka tidak mencari penyelesaian untuk menjadi pilihan yang layak.

Penyelesaian:

Penyelesaian masalah khusus ini ialah dengan hanya mengedit kod makro yang anda jalankan untuk menyimpannya secara berkala dan menutup buku kerja sasaran sambil membuat salinan lembaran kerja. Kod makro yang melakukan ini akan melihat sesuatu di sepanjang baris yang berikut:

 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 

Nota: Bilangan masa yang tepat anda boleh menyalin lembaran kerja sebelum anda perlu menyimpan dan menutup buku kerja salinan disimpan untuk berubah dari satu kes ke seterusnya kerana ia bergantung pada saiz lembaran kerja yang anda buat salinan.

The Workaround:

Seperti yang dinyatakan sebelum ini, penyelesaian untuk masalah khusus ini juga wujud. Bekerja di sekitar isu ini adalah satu perkara yang mudah untuk memasukkan lembaran kerja baru dari templat dan bukannya membuat satu salinan lembaran kerja sedia ada. Sekiranya anda ingin menyelesaikan masalah ini, inilah yang perlu anda lakukan:

  1. Pelancaran Excel .
  2. Buat buku kerja baru, dan hapuskan setiap lembaran kerja buku kerja yang mengandungi simpan untuk satu.

  3. Format buku kerja.
  4. Tambahkan sebarang teks, data dan / atau carta yang ingin anda perolehi dalam template secara lalai ke lembaran kerja sahaja buku kerja yang ada sekarang.
  5. Jika anda menggunakan Excel 2003 atau lebih awal, klik pada File > Save As . Jika anda menggunakan Excel 2007 atau kemudian, sebaliknya, klik pada butang Microsoft Office dan kemudian klik pada Simpan As .

  6. Dalam nama Fail : medan, taip apa sahaja yang anda mahu templat dipanggil.
  7. Buka menu lungsur turun bersebelahan dengan Simpan sebagai jenis: medan dan klik pada Template Excel (.xlt) jika anda menggunakan Excel 2003 atau lebih awal, atau Excel Template (.xltx) jika anda menggunakan Excel 2007 atau kemudian memilihnya.

  8. Klik Simpan .

  9. Sebaik sahaja anda berjaya membuat template, anda boleh memasukkannya secara programatik dengan menggunakan baris kod berikut:

    Sheets.Add Type: = path \ filename

Nota: Dalam baris kod yang diterangkan di atas, jalan nama \ filename perlu diganti dengan laluan penuh (termasuk nama fail lengkap) untuk lokasi templat helaian yang baru saja anda buat.

Artikel Yang Menarik