Menyalin lembar kerja secara sistematis dapat menyebabkan kesalahan pengoperasian 1004 dengan Excel

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 210684 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Di Microsoft Excel, Anda menjalankan makro yang dapat menyalin lembar kerja dan menempatkan lembar kerja ke buku kerja yang sama dari yang asli. Ketika Anda melakukan hal ini, Anda mungkin menerima pesan kesalahan yang mirip salah satu dari pesan kesalahan berikut:
Kesalahan pengoperasian '1004':
Metode Penyalinan Kelas Lembar Kerja gagal
Kesalahan pengoperasian '1004':
Kesalahan aplikasi atau objek yang ditetapkan

PENYEBAB

Microsoft memberi contoh pemprograman untuk ilustrasi saja, tanpa garansi yang dinyatakan langsung maupun yang tidak langsung. Garansi ini meliputi, tetapi tidak dibatasi, garansi yang tersirat mengenai keadaan yang dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini menganggap Anda biasa dengan bahasa pemrograman yang sedang ditunjukkan dan dengan alat yang digunakan untuk membuat dan melakukan debug prosedur. Teknisi Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu. Meskipun demikian, mereka tidak akan mengubah contoh tersebut untuk menyediakan fungsionalitas tambahan atau membuat prosedur untuk memenuhi syarat khusus Anda.

Masalah ini bisa terjadi saat Anda memberi buku kerja dengan nama tertentu, kemudian menyalin lembar kerja beberapa kali tanpa menyimpan dan menutup buku kerja terlebih dahulu, seperti di dalam kode contoh berikut:
<![CDATA[
Sub CopySheetTest()
    Dim iTemp As Integer
    Dim oBook As Workbook
    Dim iCounter As Integer
    
    ' Buat buku kerja kosong baru:
    iTemp = Application.SheetsInNewWorkbook
    Application.SheetsInNewWorkbook = 1
    Set oBook = Application.Workbooks.Add
    Application.SheetsInNewWorkbook = iTemp
    
    ' Tambah nama yang ditetapkan untuk buku kerja
    ' dengan RefersTo yang mengacu ke kisaran:
    oBook.Names.Add Name:="tempRange", _
        RefersTo:="=Sheet1!$A$1"
            
    ' Simpan buku kerja:
    oBook.SaveAs "c:\test2.xls"
    
    ' Salin lembar di sebuah loop. Akhirnya,
    ' Anda menjumpai kesalahan 1004: Menyalin Metode
    ' Kelas lembar kerja telah gagal.
    For iCounter = 1 To 275
        oBook.Worksheets(1).Copy After:=oBook.Worksheets(1)        
    Next
End Sub
				]]>

PEMECAHAN MASALAH

Untuk menyelesaikan persoalan ini, simpan dan tutup buku kerja secara berkala saat proses salinan terjadi, seperti di kode contoh berikut:
<![CDATA[
Sub CopySheetTest()
    Dim iTemp As Integer
    Dim oBook As Workbook
    Dim iCounter As Integer
    
    ' Buat buku kerja kosong baru:
    iTemp = Application.SheetsInNewWorkbook
    Application.SheetsInNewWorkbook = 1
    Set oBook = Application.Workbooks.Add
    Application.SheetsInNewWorkbook = iTemp
    
    ' Tambah nama yang ditetapkan untuk buku kerja
    ' dengan RefersTo yang mengacu ke kisaran:
    oBook.Names.Add Name:="tempRange", _
        RefersTo:="=Sheet1!$A$1"
            
    ' Simpan buku kerja:
    oBook.SaveAs "c:\test2.xls"
    
    ' Salin lembar di sebuah loop. Akhirnya,
    ' Anda menjumpai kesalahan 1004: Menyalin Metode
    ' Kelas lembar kerja telah gagal.
    For iCounter = 1 To 275
        oBook.Worksheets(1).Copy After:=oBook.Worksheets(1)
        'Jangan memberi komentar kode ini selama bekerja:
        'Simpan, tutup, dan buka kembali setiap 100 pengulangan:
        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 Jumlah berapa kali Anda dapat menyalin lembar kerjanya sebelum Anda harus menyimpan buku kerja akan berbeda-beda menurut ukuran lembar kerja.

TEKNIK PEMECAHAN MASALAH

Untuk menghindari masalah ini, sisipkan lembar kerja baru dari template selain dari menyalin lembar kerja yang ada. Untuk melakukan hal ini, ikuti petunjuk seperti yang sesuai untuk versi Excel yang sedang Anda jalankan.

Microsoft Office Excel 2007

  1. Buat buku kerja baru, kemudian hapus semua lembar kerja kecuali untuk yang sama.
  2. Format buku kerja, kemudia tambah teks, data, dan grafik yang harus Anda miliki di dalam template dengan default.
  3. Klik Tombol Microsoft Office, kemudian klik Simpan Sebagai.
  4. Di kotak Nama berkas, ketik nama yang Anda inginkan untuk template Excel.
  5. Di daftar Simpan sebagai jenis, klik Template (*.xltx), kemudian klik Simpan.
  6. Untuk menyisipkan template secara terencana, gunakan kode berikut:
    Sheets.Add Type:=lintasan\nama berkas
    Pada kode ini, lintasan\nama berkas adalah sebuah string yang memenuhi lintasan dan nama berkas untuk template lembar Anda.

Microsoft Office Excel 2003 dan versi Excel sebelumnya

  1. Buat buku kerja baru, kemudian hapus semua lembar kerja kecuali untuk yang sama.
  2. Format buku kerja, kemudia tambah teks, data, dan grafik yang harus Anda miliki di dalam template dengan default.
  3. Klik Berkas, kemudian klik Simpan Sebagai.
  4. Di kotak Nama berkas, ketik nama yang Anda inginkan untuk template Excel.
  5. Di daftar Simpan sebagai jenis, klik Template (*.xlt), kemudian klik Simpan.
  6. Untuk menyisipkan template secara terencana, gunakan kode berikut:
    Sheets.Add Type:=lintasan\nama berkas
    Pada kode ini, lintasan\nama berkas adalah sebuah string yang memenuhi lintasan dan nama berkas untuk template lembar Anda.

STATUS

Microsoft telah mengkonfirmasi bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana didaftar di dalam bagian "Berlaku untuk".

Properti

ID Artikel: 210684 - Kajian Terakhir: 02 Maret 2008 - Revisi: 6.3
Berlaku bagi:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
Kata kunci: 
kberrmsg kbbug kbmacro kbprogramming kbautomation kbpending kbvba kbexpertiseinter KB210684

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com