Cara Memperbaiki Ralat Jalankan Masa 1004 di Excel

Kesalahan run-time 1004 adalah kod ralat yang berkaitan dengan Microsoft Visual Basic yang diketahui mempengaruhi pengguna Microsoft Excel. Kesalahan itu diketahui paling banyak berlaku pada Excel 2003 dan Excel 2007, walaupun tidak ada versi aplikasi lembaran kerja Microsoft yang popular untuk komputer yang selamat dari ancaman iaitu ralat Waktu-lari 1004. Dalam kebanyakan kes, pengguna yang terkena masalah ini melihat salah satu dua variasi ralat run-time 1004 berbeza. Secara keseluruhannya, dua variasi ralat Run-time 1004 membaca:

" Kesalahan jangka masa '1004':

Kaedah Penyalinan Kelas Lembaran Kerja gagal

" Kesalahan jangka masa '1004':

Ralat yang ditentukan aplikasi atau ditentukan objek

Mesej ralat yang anda lihat mungkin sedikit berbeza, dalam beberapa kes, walaupun kod ralat akan tetap sama. Terlepas dari versi masalah yang anda alami, bagaimanapun, masalah ini selalu berlaku semasa menjalankan makro di Excel yang direka untuk menyalin lembaran kerja dan kemudian meletakkan salinannya ke dalam buku kerja yang sama dengan lembaran kerja asal.

Tidak seperti masalah teknologi terburuk di luar sana, penyebab ralat Run-time 1004 dalam Microsoft Excel diketahui. Kesalahan jangka masa 1004 berlaku ketika makro yang anda jalankan menyalin lembaran kerja asal ke buku kerja dengan nama yang ditentukan yang tidak anda simpan dan tutup sebelum anda menjalankan makro. Contoh makro seperti itu dapat 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

Oleh kerana penyebab ralat Run-time 1004 dalam konteks Microsoft Excel diketahui, seperti juga penyelesaiannya. Selain solusi untuk masalah ini, apa yang juga tersedia bagi pengguna yang terpengaruh adalah solusi yang dapat digunakan sekiranya penyelesaiannya tidak berfungsi atau mereka tidak menemukan jalan keluar sebagai pilihan yang sesuai.

Penyelesaian:

Penyelesaian untuk masalah khusus ini adalah dengan hanya mengedit kod makro yang anda jalankan untuk menyimpannya secara berkala dan menutup buku kerja sasaran semasa membuat salinan lembaran kerja. Kod untuk makro yang melakukan ini akan kelihatan seperti 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

Catatan: Berapa kali anda boleh menyalin lembaran kerja sebelum anda perlu menyimpan dan menutup buku kerja, salinan yang disimpan berbeza dari satu kes ke kes yang berikutnya kerana bergantung pada ukuran lembaran kerja yang anda buat salinannya.

Penyelesaian:

Seperti yang dinyatakan sebelumnya, jalan keluar untuk masalah khusus ini juga ada. Mengatasi masalah ini adalah dengan mudah memasukkan lembaran kerja baru dari templat dan bukannya membuat salinan lembaran kerja yang ada. Sekiranya anda ingin mengatasi masalah ini, inilah yang perlu anda lakukan:

  1. Lancarkan  Excel .
  2. Buat buku kerja baru, dan  hapus  setiap lembaran kerja buku kerja mengandungi simpan untuk satu.
  3. Format  buku kerja.
  4. Tambahkan teks, data dan / atau carta yang ingin anda miliki dalam templat secara lalai ke satu-satunya lembaran kerja yang kini terdapat dalam buku kerja.
  5. Sekiranya anda menggunakan Excel 2003 atau lebih awal, klik pada  Fail Simpan Sebagai . Sekiranya anda menggunakan Excel 2007 atau lebih baru, sebaliknya, klik pada butang  Microsoft Office  dan kemudian klik  Save As .
  6. Dalam bidang  Nama fail : taipkan apa sahaja yang anda mahu templat dipanggil.
  7. Buka menu lungsur di sebelah medan  Simpan sebagai jenis: dan klik pada  Templat Excel  (.xlt) jika anda menggunakan Excel 2003 atau lebih awal, atau  Templat Excel  (.xltx) jika anda menggunakan Excel 2007 atau lebih baru untuk memilihnya.
  8. Klik  Simpan .
  9. Setelah berjaya membuat templat, anda boleh memasukkannya secara teratur dengan menggunakan baris kod berikut:

    Helaian. Jenis Tambah: = jalan \ nama fail

Catatan: Pada baris kod yang dijelaskan di atas,  path \ nama fail perlu diganti dengan jalur penuh (termasuk nama fail lengkap) untuk lokasi templat helaian yang baru anda buat.