جدول المحتويات
واحدة من أكثر المشاكل شيوعًا التي نواجهها أثناء العمل مع النسخ واللصق في VBA هي خطأ وقت التشغيل 1004 : PasteSpecial Method of Range Class Failed . في هذه المقالة ، سأوضح لك الأسباب المحتملة وراء هذا الخطأ وكيفية حلها ، مع الأمثلة والرسوم التوضيحية المناسبة.
تنزيل Practice Workbook
قم بتنزيل مصنف التدريب هذا للتمرين أثناء قراءة هذه المقالة.
فشل أسلوب اللصق الخاص. xlsm
PasteSpecial Method of Range Class Failed: الأسباب والحلول
دون مزيد من التأخير ، دعنا ننتقل إلى مناقشتنا الرئيسية. هذا هو ، ما قد تكون الأسباب المحتملة وراء هذا الخطأ ، وكيفية حلها.
السبب الأول: الوصول إلى طريقة PasteSpecial دون نسخ أي شيء
هذا هو الأكثر السبب الشائع وراء الخطأ. أي محاولة الوصول إلى طريقة PasteSpecial دون نسخ أي شيء.
لفهمها بوضوح ، تحقق من كود VBA التالي.
⧭ كود VBA:
8479
هنا ، استخدمنا PasteSpecial طريقة VBA بدون نسخ أي شيء. لذلك سيعرض Excel خطأ وقت التشغيل 1004 عند تشغيله.
⧭ الحل:
لحل هذه المشكلة ، أولاً ، تحتاج إلى نسخ نطاق من الخلايا ثم الوصول إلى طريقة PasteSpecial .
6207
عند تشغيل هذا الرمز ، سوفالصق معادلات النطاق B3: B5 من ورقة العمل النشطة إلى النطاق المحدد.
اقرأ المزيد: PasteSpecial طريقة لفشل فئة ورقة العمل (الأسباب والحلول)
السبب الثاني: الوصول إلى أسلوب PasteSpecial مع خطأ إملائي
هذا سبب شائع آخر وراء خطأ. أي ، للوصول إلى الأسلوب PasteSpecial مع وجود أخطاء إملائية في أي وسيطة.
انظر إلى التعليمات البرمجية التالية VBA لتوضيحها. هنا ارتكبنا خطأ إملائيًا في الوسيطة xlPasteAll .
⧭ رمز VBA:
3198
عند تشغيل هذا الرمز ، ستحصل على خطأ وقت التشغيل 1004 .
⧭ الحل:
الحل سهل. أنا متأكد من أنك خمنت ذلك بالفعل. فقط تأكد من أن الهجاء لجميع الوسائط تم إجراؤها بشكل صحيح.
وسيختفي الخطأ تلقائيًا.
اقرأ المزيد: كيفية استخدام اللصق أمر خاص في Excel (5 طرق مناسبة)
قراءات مماثلة
- Excel VBA: نسخ النطاق إلى مصنف آخر
- نسخ القيم ولصقها في الصف الفارغ التالي باستخدام Excel VBA (3 أمثلة)
- تطبيق VBA PasteSpecial والاحتفاظ بتنسيق المصدر في Excel
- كيفية نسخ نفس القيمة في خلايا متعددة في Excel (4 طرق)
- Excel VBA لنسخ الصفوف إلى ورقة عمل أخرى بناءً على المعايير
السبب 3: فتح ملف جديدالمصنف بعد النسخ يقوم بإلغاء وضع النسخ / اللصق
وهذا سبب مهم آخر وراء الخطأ. أي لفعل شيء يلغي وضع النسخ / اللصق قبل اللصق.
انظر إلى الكود التالي لفهمه بوضوح.
⧭ كود VBA:
6512
هنا قمنا بنسخ النطاق B3: B5 من Sheet1 من مصنف يسمى Workbook1 .
ثم أنشأنا مصنفًا جديدًا يسمى Workbook2 في نفس المجلد وحاولنا لصق النطاق المنسوخ إلى النطاق B3: B5 من الورقة 1 من هذا المصنف.
ولكن عندما نقوم بتشغيل الكود ، فإنه سيعرض PasteSpecial Method of Range Class Failed خطأ ، لأن اللحظة التي أنشأنا فيها المصنف الجديد ، وضع النسخ / اللصق سيتم إلغاؤه.
⧭ الحل:
لحل هذه المشكلة ، اكتب أولاً أسفل سطور التعليمات البرمجية لإنشاء مصنف جديد يسمى Workbook2 .
ثم أدخل الأسطر لتنشيط Workbook1 وانسخ النطاق المطلوب منه.
وأخيرًا ، قم بتنشيط Workbook2 والصق النطاق المنسوخ هناك.
7265
قم بتشغيل هذا الرمز. سيتم نسخ النطاق B3: B5 من Sheet1 من Workbook1.
ولصقه في الورقة 1 من المصنف الذي تم إنشاؤه حديثًا والمسمى مصنف 2 .
⧭ تحذير:
من الواضح ، لا تنسَ إبقاء Workbook1 مفتوحًا أثناء تشغيل ملفالكود.
اقرأ المزيد: كيفية تعطيل النسخ واللصق في Excel بدون وحدات الماكرو (بمعيارين)
السبب الرابع: تحويل Application.CutCopyMode إلى False الذي يلغي وضع النسخ / اللصق
أخيرًا ، قد يكون هناك سبب آخر لحدوث الخطأ. قد نقوم بإيقاف تشغيل Application.CutCopyMode عن طريق الخطأ قبل الوصول إلى طريقة PasteSpecial . العمل مع عدد طويل من الأسطر.
انظر التعليمات البرمجية التالية لفهمها بوضوح. هنا قمنا بنسخ النطاق B3: B5 ، لكننا ألغينا CutCopyMode قبل لصقه.
⧭ كود VBA:
4640
عندما تقوم بتشغيل الكود ، سيظهر الخطأ PasteSpecial Method of Range Class Failed error.
الحل:
أعتقد الآن أنكم جميعًا قد خمنتم الحل. الأمر بسيط للغاية في الواقع. ما عليك سوى إزالة السطر من الكود الذي يقوم بإيقاف تشغيل الوضع CutCopy .
لذا ، سيكون كود VBA الصحيح هو:
8622
يقوم بنسخ النطاق B3: B5 ولصقه فوق D3: D5 دون أي مشاكل.
قراءة المزيد: لصق VBA الخاص لنسخ القيم والتنسيقات في Excel (9 أمثلة)
أشياء يجب تذكرها
لقد أظهرت هنا فقط المشكلات التي قد تواجهها أثناء العمل باستخدام طريقة PasteSpecial في VBA. إذا كنتتريد معرفة طريقة PasteSpecial بالتفصيل ، قم بزيارة هذا الرابط .
الاستنتاج
إذن ، باختصار ، هذه هي الأسباب التي قد تتسبب في خطأ وقت التشغيل 1004: PasteSpecial Method od Range Class Failed في التعليمات البرمجية الخاصة بك. أتمنى أن تكون قد فهمت كل النقاط بوضوح وستساعدك هذه كثيرًا في المستقبل. هل تعرف أي أسباب أخرى؟ وهل لديك أي مشاكل؟ اسألني بكل حرية. ولا تنس زيارة موقعنا ExcelWIKI لمزيد من المشاركات والتحديثات.