ข้อผิดพลาดรันไทม์ 1004: วิธี PasteSpecial ของคลาสช่วงล้มเหลว

  • แบ่งปันสิ่งนี้
Hugh West

หนึ่งในปัญหาที่พบบ่อยที่สุดที่เราพบขณะทำงานกับ การคัดลอกและวางใน VBA คือ ข้อผิดพลาดรันไทม์ 1004 : PasteSpecial Method of Range Class Failed . ในบทความนี้ ฉันจะแสดงให้คุณเห็นว่าสาเหตุที่เป็นไปได้อยู่เบื้องหลังข้อผิดพลาดนี้และวิธีแก้ไข พร้อมตัวอย่างและภาพประกอบที่เหมาะสม

ดาวน์โหลดสมุดงานแบบฝึกหัด

ดาวน์โหลดแบบฝึกหัดนี้เพื่อฝึกฝนในขณะที่คุณกำลังอ่านบทความนี้

PasteSpecial Method Failed.xlsm

PasteSpecial Method of Range Class Failed: สาเหตุ และแนวทางแก้ไข

โดยไม่รอช้า ไปที่การสนทนาหลักของเรากันเลย นั่นคือ สาเหตุที่เป็นไปได้ที่อยู่เบื้องหลังข้อผิดพลาดนี้ และวิธีแก้ปัญหาเหล่านั้น

เหตุผลที่ 1: การเข้าถึงวิธี PasteSpecial โดยไม่ต้องคัดลอกอะไร

นี่คือสาเหตุส่วนใหญ่ สาเหตุทั่วไปที่อยู่เบื้องหลังข้อผิดพลาด นั่นคือ พยายามเข้าถึงเมธอด PasteSpecial โดยไม่คัดลอกอะไรเลย

เพื่อให้เข้าใจชัดเจน ตรวจสอบโค้ด VBA ต่อไปนี้

⧭ รหัส VBA:

8759

ในที่นี้ เราใช้วิธี PasteSpecial ของ VBA โดยไม่มี คัดลอกอะไร ดังนั้น Excel จะแสดง ข้อผิดพลาดรันไทม์ 1004 เมื่อคุณเรียกใช้

⧭ วิธีแก้ไข:

เพื่อแก้ปัญหานี้ ก่อนอื่น คุณต้องคัดลอกช่วงของเซลล์ จากนั้นเข้าถึงเมธอด PasteSpecial

6999

เมื่อคุณเรียกใช้โค้ดนี้ มันจะวางสูตรของช่วง B3:B5 ของเวิร์กชีตที่ใช้งานอยู่ไปยังช่วงที่เลือก

อ่านเพิ่มเติม: วิธี PasteSpecial ของคลาสเวิร์กชีตล้มเหลว (เหตุผลและวิธีแก้ไข)

เหตุผลที่ 2: การเข้าถึงวิธี PasteSpecial ด้วยข้อผิดพลาดในการสะกดคำ

นี่เป็นอีกสาเหตุหนึ่งที่อยู่เบื้องหลัง ข้อผิดพลาด. นั่นคือ เพื่อเข้าถึงเมธอด PasteSpecial ที่มีข้อผิดพลาดในการสะกดในอาร์กิวเมนต์ใดๆ

ดูโค้ด VBA ต่อไปนี้เพื่อให้ชัดเจน เราสะกดผิดในอาร์กิวเมนต์ xlPasteAll .

⧭ รหัส VBA:

1624

เมื่อคุณเรียกใช้รหัสนี้ คุณจะได้รับ ข้อผิดพลาดรันไทม์ 1004

⧭ วิธีแก้ไข:

วิธีแก้ปัญหานั้นง่ายมาก ฉันแน่ใจว่าคุณเดาได้อยู่แล้ว เพียงตรวจสอบให้แน่ใจว่าการสะกดของอาร์กิวเมนต์ทั้งหมดถูกต้อง

และข้อผิดพลาดจะหายไปโดยอัตโนมัติ

อ่านเพิ่มเติม: วิธีใช้ Paste คำสั่งพิเศษใน Excel (5 วิธีที่เหมาะสม)

การอ่านที่คล้ายกัน

  • Excel VBA: คัดลอกช่วงไปยังสมุดงานอื่น
  • คัดลอกและวางค่าไปยังแถวว่างถัดไปด้วย Excel VBA (3 ตัวอย่าง)
  • ใช้ VBA PasteSpecial และเก็บการจัดรูปแบบต้นฉบับใน Excel
  • วิธีคัดลอกค่าเดียวกันในหลายเซลล์ใน Excel (4 วิธี)
  • Excel VBA เพื่อคัดลอกแถวไปยังแผ่นงานอื่นตามเกณฑ์

เหตุผลที่ 3: การเปิดรายการใหม่สมุดงานหลังจากการคัดลอกที่ยกเลิกโหมดการคัดลอก/วาง

นี่เป็นอีกสาเหตุสำคัญที่อยู่เบื้องหลังข้อผิดพลาด นั่นคือ ทำบางสิ่งที่ยกเลิกโหมดการคัดลอก/วางก่อนที่จะวาง

ดูโค้ดต่อไปนี้เพื่อความเข้าใจที่ชัดเจน

⧭ รหัส VBA:

2316

เราได้คัดลอกช่วง B3:B5 จาก Sheet1 ของสมุดงานชื่อ Workbook1 .

จากนั้นเราได้สร้างสมุดงานใหม่ชื่อ สมุดงาน2 ในโฟลเดอร์เดียวกัน และพยายามวางช่วงที่คัดลอกไปยังช่วง B3:B5 ของ Sheet1 ของสมุดงานนั้น

แต่เมื่อเรารันโค้ด มันจะแสดงข้อผิดพลาด PasteSpecial Method of Range Class Failed เนื่องจากเมื่อเราสร้างสมุดงานใหม่ โหมดคัดลอก/วาง จะถูกยกเลิก

⧭ วิธีแก้ไข:

ในการแก้ปัญหานี้ ก่อนอื่น ให้เขียน ลงบรรทัดของรหัสเพื่อสร้างสมุดงานใหม่ที่ชื่อว่า สมุดงาน 2 .

จากนั้นแทรกบรรทัดเพื่อเปิดใช้งาน สมุดงาน 1 และคัดลอกช่วงที่ต้องการจากนั้น

และสุดท้าย เปิดใช้งาน Workbook2 และวางช่วงที่คัดลอกไว้ที่นั่น

2204

เรียกใช้รหัสนี้ มันจะคัดลอกช่วง B3:B5 จาก Sheet1 ของ Workbook1

แล้ววาง ลงใน Sheet1 ของสมุดงานที่สร้างขึ้นใหม่ชื่อ Workbook2 .

⧭ ข้อควรระวัง:

แน่นอนว่าอย่าลืมเปิด Workbook1 ไว้ในขณะที่เรียกใช้โค้ด

อ่านเพิ่มเติม: วิธีปิดใช้งานการคัดลอกและวางใน Excel โดยไม่ใช้มาโคร (มี 2 เกณฑ์)

เหตุผลที่ 4: เปลี่ยน Application.CutCopyMode เป็น False ซึ่งจะยกเลิกโหมดคัดลอก/วาง

สุดท้าย อาจมีสาเหตุอื่นที่ทำให้เกิดข้อผิดพลาดขึ้น เราอาจปิด Application.CutCopyMode โดยไม่ตั้งใจก่อนที่จะเข้าถึงเมธอด PasteSpecial

แม้ว่าจะไม่ใช่แนวทางปฏิบัติทั่วไป แต่บางครั้งเราก็ปิดเมื่อต้องการ ทำงานกับบรรทัดจำนวนมาก

ดูรหัสต่อไปนี้เพื่อทำความเข้าใจอย่างชัดเจน ที่นี่เราได้คัดลอกช่วง B3:B5 แต่ยกเลิก CutCopyMode ก่อนที่จะวาง

⧭ รหัส VBA:

6999

เมื่อคุณรันโค้ด มันจะแสดงข้อผิดพลาด PasteSpecial Method of Range Class Failed

⧭ วิธีแก้ไข:

ฉันคิดว่าตอนนี้คุณคงเดาคำตอบได้แล้ว มันค่อนข้างง่ายจริงๆ เพียงลบบรรทัดออกจากโค้ดที่ปิดโหมด CutCopy

ดังนั้น โค้ด VBA ที่ถูกต้องจะเป็น:

2737

<24

ระบบจะคัดลอกช่วง B3:B5 และวางช่วง D3:D5 โดยไม่มีปัญหาใดๆ

อ่านเพิ่มเติม: VBA Paste Special เพื่อคัดลอกค่าและรูปแบบใน Excel (9 ตัวอย่าง)

สิ่งที่ควรจำ

ในที่นี้ ฉันได้แสดงเฉพาะปัญหาที่คุณอาจพบขณะทำงานกับเมธอด PasteSpecial ใน VBA หากคุณต้องการทราบวิธีการ PasteSpecial โดยละเอียด โปรดไปที่ ลิงก์นี้ .

บทสรุป

โดยสรุปแล้ว วิธีเหล่านี้ เป็นสาเหตุที่ทำให้เกิด ข้อผิดพลาดรันไทม์ 1004: PasteSpecial Method od Range Class Failed ในโค้ดของคุณ ฉันหวังว่าคุณจะเข้าใจประเด็นทั้งหมดอย่างชัดเจนและสิ่งเหล่านี้จะช่วยคุณได้มากในอนาคต คุณรู้เหตุผลอื่น ๆ หรือไม่? และคุณมีปัญหาอะไรหรือไม่? อย่าลังเลที่จะถามเรา และอย่าลืมเยี่ยมชมเว็บไซต์ของเรา ExcelWIKI เพื่อดูโพสต์และอัปเดตเพิ่มเติม

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง