Jalankan Waktu Kesalahan 1004: Metode PasteSpecial dari Kelas Rentang Gagal

  • Bagikan Ini
Hugh West

Salah satu masalah paling umum yang kami hadapi saat bekerja dengan Menyalin dan menempel di VBA adalah kesalahan waktu berjalan 1004 : Metode PasteSpecial dari Kelas Range Gagal Dalam artikel ini, saya akan menunjukkan kepada Anda apa saja kemungkinan alasan di balik kesalahan ini dan cara mengatasinya, dengan contoh dan ilustrasi yang tepat.

Unduh Buku Kerja Praktik

Unduh buku kerja latihan ini untuk latihan saat Anda membaca artikel ini.

Metode Tempel Khusus Gagal.xlsm

Metode PasteSpecial dari Range Class Gagal: Penyebab dan Solusi

Tanpa penundaan lebih lanjut, mari kita lanjutkan ke pembahasan utama kita. Yaitu, apa kemungkinan alasan di balik kesalahan ini, dan bagaimana mengatasinya.

Alasan 1: Mengakses Metode PasteSpecial tanpa Menyalin Apa pun

Ini adalah alasan paling umum di balik kesalahan. Artinya, mencoba mengakses file TempelKhusus tanpa menyalin apa pun.

Untuk memahaminya dengan jelas, periksa yang berikut ini VBA kode.

⧭ Kode VBA:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Di sini, kami telah menggunakan TempelKhusus metode VBA tanpa menyalin apa pun. Jadi Excel akan menampilkan kesalahan waktu berjalan 1004 ketika Anda menjalankannya.

⧭ Solusi:

Untuk menyelesaikan masalah ini, pertama, Anda perlu menyalin rentang sel lalu mengakses TempelKhusus metode.

 Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Ketika Anda menjalankan kode ini, ia akan menempelkan rumus rentang B3:B5 dari lembar kerja aktif ke rentang yang dipilih.

Baca selengkapnya: Metode PasteSpecial dari Kelas Lembar Kerja Gagal (Alasan &; Solusi)

Alasan 2: Mengakses Metode PasteSpecial dengan Kesalahan Ejaan

Ini adalah alasan umum lain di balik kesalahan. Artinya, untuk mengakses TempelKhusus dengan kesalahan ejaan dalam argumen apa pun.

Lihatlah yang berikut ini VBA kode untuk memperjelasnya. Di sini kami telah membuat kesalahan ejaan dalam argumen xlPasteAll .

⧭ Kode VBA:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlPaseAll End Sub 

Apabila Anda menjalankan kode ini, Anda akan mendapatkan kesalahan waktu berjalan 1004 .

⧭ Solusi:

Solusinya mudah. Saya yakin Anda sudah bisa menebaknya. Pastikan saja bahwa ejaan semua argumen telah dibuat dengan benar.

Dan kesalahan akan secara otomatis hilang.

Baca selengkapnya: Cara Menggunakan Perintah Khusus Tempel di Excel (5 Cara yang Cocok)

Bacaan Serupa

  • Excel VBA: Salin Rentang ke Buku Kerja Lain
  • Salin dan Tempel Nilai ke Baris Kosong Berikutnya dengan Excel VBA (3 Contoh)
  • Terapkan VBA PasteSpecial dan Pertahankan Pemformatan Sumber di Excel
  • Cara Menyalin Nilai yang Sama di Beberapa Sel di Excel (4 Metode)
  • Excel VBA untuk Menyalin Baris ke Lembar Kerja Lain Berdasarkan Kriteria

Alasan 3: Membuka Buku Kerja Baru Setelah Menyalin yang Membatalkan Mode Salin/Tempel

Ini adalah alasan penting lainnya di balik kesalahan. Yaitu, melakukan sesuatu yang membatalkan mode salin/tempel sebelum menempel.

Lihatlah kode berikut untuk memahami dengan jelas.

⧭ Kode VBA:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Workbooks("Workbook1.xlsx").Worksheets("Sheet1").Range("B3:B5").Select Selection.Copy Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & "\" & "Workbook2.xlsx" Workbook2.Activate Workbook2.Unprotect Workbook2.Worksheets("Sheet1").Range("B3:B5").Select Selection.PasteSpecial Paste:=xlPasteAllAkhiri Sub 

Di sini kita telah menyalin kisaran B3:B5 dari Sheet1 dari buku kerja yang disebut Buku Kerja1 .

Kemudian kita telah membuat buku kerja baru bernama Buku Kerja2 di folder yang sama dan mencoba menempelkan rentang yang disalin ke rentang B3:B5 dari Sheet1 dari buku kerja itu.

Tetapi ketika kita menjalankan kodenya, ia akan menampilkan Metode PasteSpecial dari Kelas Range Gagal Kesalahan, karena saat kita membuat buku kerja baru, file mode salin/tempel akan dibatalkan.

⧭ Solusi:

Untuk memecahkan masalah ini, pertama-tama, tuliskan baris kode untuk membuat buku kerja baru yang disebut Buku Kerja2 .

Lalu, sisipkan baris untuk mengaktifkan Buku Kerja1 dan menyalin kisaran yang diinginkan darinya.

Dan akhirnya, aktifkan Buku Kerja2 dan menempelkan kisaran yang disalin di sana.

 Sub PasteSpecial_Method_of_Range_Class_Failed() Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & "\" & "Workbook2.xlsx" Workbooks("Workbook1.xlsx").Aktifkan Lembar Kerja("Sheet1").Range("B3:B5").Pilih Seleksi.Copy Workbook2.Aktifkan Lembar Kerja("Sheet1").Range("B3:B5").Pilih Seleksi.TempelSpecial Paste:=xlPasteAll End Sub 

Jalankan kode ini. Ini akan menyalin rentang B3:B5 dari Sheet1 dari Buku Kerja1.

Dan menempelkannya ke dalam Sheet1 dari buku kerja yang baru dibuat yang disebut Buku Kerja2 .

⧭ Perhatian:

Yang jelas, jangan lupa untuk menjaga Buku Kerja1 terbuka saat menjalankan kode.

Baca selengkapnya: Cara Menonaktifkan Salin dan Tempel di Excel tanpa Makro (Dengan 2 Kriteria)

Alasan 4: Mengubah Application.CutCopyMode ke False yang Membatalkan Mode Salin/Tempel

Akhirnya, mungkin ada alasan lain yang menyebabkan terjadinya kesalahan. Aplikasi.CutCopyMode keliru sebelum mengakses TempelKhusus metode.

Meskipun ini bukan praktik yang sangat umum, namun terkadang kita tetap melakukannya ketika kita harus bekerja dengan jumlah baris yang panjang.

Lihat kode berikut untuk memahaminya dengan jelas. Di sini kita telah menyalin rentang B3:B5 , tetapi membatalkan CutCopyMode sebelum menempelkannya.

⧭ Kode VBA:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Application.CutCopyMode = False Range("D3:D5").PasteSpecial Paste:=xlPasteAll End Sub 

Ketika Anda akan menjalankan kode tersebut, maka akan ditampilkan Metode PasteSpecial dari Kelas Range Gagal kesalahan.

⧭ Solusi:

Saya kira sekarang Anda semua sudah bisa menebak solusinya. Sebenarnya cukup sederhana. Cukup hapus baris dari kode yang mengubah CutCopy mode mati.

Jadi, yang benar VBA kode akan menjadi:

 Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Range("D3:D5").PasteSpecial Paste:=xlPasteAll End Sub 

Ini akan menyalin rentang B3:B5 dan menempelkannya di atas D3:D5 tanpa masalah.

Baca selengkapnya: VBA Tempel Khusus untuk Menyalin Nilai dan Format di Excel (9 Contoh)

Hal-hal yang Perlu Diingat

Di sini, saya hanya menunjukkan masalah yang mungkin Anda hadapi sewaktu bekerja dengan TempelKhusus metode dalam VBA. Jika Anda ingin mengetahui TempelKhusus metode secara terperinci, kunjungi tautan ini .

Kesimpulan

Jadi, singkatnya, ini adalah alasan yang dapat menyebabkan kesalahan run-time 1004: Metode PasteSpecial od Range Class Gagal Saya harap Anda telah memahami semua poin dengan jelas dan itu akan banyak membantu Anda di masa depan. Apakah Anda tahu alasan lain? Dan apakah Anda memiliki masalah? Jangan ragu untuk bertanya kepada kami. Dan jangan lupa untuk mengunjungi situs kami ExcelWIKI untuk lebih banyak postingan dan pembaruan.

Hugh West adalah pelatih dan analis Excel yang sangat berpengalaman dengan pengalaman lebih dari 10 tahun di industri ini. Beliau meraih gelar Sarjana di bidang Akuntansi dan Keuangan dan gelar Master di bidang Administrasi Bisnis. Hugh memiliki hasrat untuk mengajar dan telah mengembangkan pendekatan pengajaran unik yang mudah diikuti dan dipahami. Pengetahuan ahlinya tentang Excel telah membantu ribuan siswa dan profesional di seluruh dunia meningkatkan keterampilan dan unggul dalam karier mereka. Melalui blognya, Hugh membagikan pengetahuannya kepada dunia, menawarkan tutorial Excel gratis dan pelatihan online untuk membantu individu dan bisnis mencapai potensi penuh mereka.