خطای زمان اجرا 1004: PasteSpecial Method of Range Class Failed

  • این را به اشتراک بگذارید
Hugh West

یکی از رایج ترین مشکلاتی که هنگام کار با کپی و چسباندن در VBA با آن مواجه می شویم خطای زمان اجرا 1004 است: PasteSpecial Method of Range Class Failed در این مقاله، من به شما نشان خواهم داد که دلایل احتمالی پشت این خطا چیست و چگونه آنها را با مثال ها و تصاویر مناسب حل کنید.

دانلود کتاب تمرین

این کتاب تمرین را برای تمرین در حین خواندن این مقاله دانلود کنید.

PasteSpecial Method Failed.xlsm

PasteSpecial Method of Range Class Failed: Causes و راه حل ها

بدون تاخیر بیشتر به بحث اصلی خود می رویم. یعنی دلایل احتمالی پشت این خطا چیست و چگونه می توان آنها را حل کرد.

دلیل 1: دسترسی به روش PasteSpecial بدون کپی کردن چیزی

این بیشترین است دلیل رایج پشت خطا یعنی تلاش برای دسترسی به روش PasteSpecial بدون کپی کردن چیزی.

برای درک واضح آن، کد VBA زیر را بررسی کنید.

⧭ کد VBA:

2181

در اینجا، ما از روش PasteSpecial VBA بدون استفاده کرده ایم کپی کردن هر چیزی بنابراین اکسل هنگام اجرا یک خطای زمان اجرا 1004 را نمایش می دهد.

⧭ راه حل:

<0 برای حل این مشکل، ابتدا باید محدوده ای از سلول ها را کپی کنید سپس به روش PasteSpecial دسترسی داشته باشید.
2949

هنگامی که این کد را اجرا می کنید، خواهد شدفرمول های محدوده B3:B5 کاربرگ فعال را در محدوده انتخاب شده قرار دهید.

بیشتر بخوانید: روش PasteSpecial از کلاس کاربرگ ناموفق بود (دلایل و راه حل ها)

دلیل 2: دسترسی به روش PasteSpecial با خطای املایی

این یکی دیگر از دلایل رایج در پشت خطا یعنی برای دسترسی به روش PasteSpecial با خطا(های) املایی در هر آرگومان.

به کد VBA زیر نگاه کنید تا واضح شود. در اینجا ما یک اشتباه املایی در آرگومان xlPasteAll مرتکب شدیم.

⧭ کد VBA:

3294

وقتی این کد را اجرا می کنید، خطای زمان اجرا 1004 را دریافت خواهید کرد.

⧭ راه حل:

راه حل آسان است. من مطمئن هستم که شما قبلاً آن را حدس زده اید. فقط مطمئن شوید که املای همه استدلال ها به درستی انجام شده است.

و خطا به طور خودکار ناپدید می شود.

بیشتر بخوانید: نحوه استفاده از چسباندن فرمان ویژه در اکسل (5 روش مناسب)

خواندنی مشابه

  • Excel VBA: کپی محدوده در کتاب کار دیگری
  • کپی و چسباندن مقادیر در ردیف خالی بعدی با Excel VBA (3 مثال)
  • اعمال VBA PasteSpecial و حفظ فرمت منبع در اکسل
  • نحوه کپی کردن مقدار یکسان در چندین سلول در اکسل (4 روش)
  • Excel VBA برای کپی کردن ردیف ها در کاربرگ دیگر بر اساس معیارها

دلیل 3: باز کردن یک جدیدکتاب کار پس از کپی که حالت کپی/پیست را لغو می کند

این یکی دیگر از دلایل مهم خطا است. یعنی انجام کاری که حالت کپی/پیست را قبل از چسباندن لغو می کند.

برای درک واضح به کد زیر نگاه کنید.

⧭ کد VBA:

2732

در اینجا ما محدوده B3:B5 را از Sheet1 یک کتاب کار به نام Workbook1 کپی کرده ایم.

سپس یک Workbook جدید به نام Workbook2 در همان پوشه ایجاد کردیم و سعی کردیم محدوده کپی شده را در محدوده B3:B5 از Sheet1<قرار دهیم. 2> از آن کتاب کار.

اما هنگامی که کد را اجرا می کنیم، خطای PasteSpecial Method of Range Class Failed را نشان می دهد، زیرا لحظه ای که کتاب کار جدید را ایجاد می کنیم، حالت کپی/پیست لغو خواهد شد.

⧭ راه حل:

برای حل این مشکل، ابتدا بنویسید خطوط کد را پایین بیاورید تا کتاب کار جدیدی به نام Workbook2 ایجاد شود.

سپس خطوط را وارد کنید تا Workbook1 فعال شود و محدوده مورد نظر را از آن کپی کنید.

0>و در نهایت، Workbook2 را فعال کنید و محدوده کپی شده را در آنجا قرار دهید.

9381

این کد را اجرا کنید. محدوده B3:B5 را از Sheet1 از Workbook1 کپی می کند.

و جایگذاری می کند در Sheet1 از کتاب کار جدید ایجاد شده به نام Workbook2 .

⧭ احتیاط:

بدیهی است که فراموش نکنید که Workbook1 را هنگام اجرای برنامه باز نگه داریدکد.

بیشتر بخوانید: نحوه غیرفعال کردن کپی و جایگذاری در اکسل بدون ماکرو (با 2 معیار)

دلیل 4: تبدیل Application.CutCopyMode به False که حالت Copy/Paste را لغو می کند

در نهایت، ممکن است دلیل دیگری برای رخ دادن خطا وجود داشته باشد. ممکن است قبل از دسترسی به روش PasteSpecial به اشتباه Application.CutCopyMode را خاموش کنیم.

اگرچه این یک روش معمولی نیست، هنوز هم گاهی اوقات زمانی که می خواهیم آن را انجام می دهیم با تعداد زیادی خط کار کنید.

برای درک واضح کد زیر را ببینید. در اینجا ما محدوده B3:B5 را کپی کرده ایم، اما قبل از چسباندن CutCopyMode آن را لغو کرده ایم.

⧭ کد VBA:

2041

وقتی کد را اجرا می کنید، خطای PasteSpecial Method of Range Class Failed نشان داده می شود.

⧭ راه حل:

من حدس می‌زنم تا الان همه شما راه حل را حدس زده باشید. در واقع بسیار ساده است. فقط خطی را از کد حذف کنید که حالت CutCopy را خاموش می کند.

بنابراین، کد VBA صحیح خواهد بود:

6735

محدوده B3:B5 را کپی کرده و بدون هیچ مشکلی روی D3:D5 جای‌گذاری می‌کند.

بیشتر بخوانید: VBA Paste ویژه برای کپی کردن مقادیر و فرمت ها در اکسل (9 مثال)

چیزهایی که باید به خاطر بسپارید

در اینجا من فقط مشکلاتی را که ممکن است هنگام کار با متد PasteSpecial در VBA با آنها مواجه شوید، نشان داده‌ام. اگر شمامی خواهید روش PasteSpecial را با جزئیات بدانید، به این پیوند مراجعه کنید.

نتیجه گیری

بنابراین، به طور خلاصه، این دلایلی هستند که ممکن است باعث ایجاد خطای زمان اجرا 1004: PasteSpecial Method od Range Class Failed در کد شما شوند. امیدوارم همه نکات را به وضوح درک کرده باشید و در آینده به شما کمک زیادی کند. آیا دلایل دیگری می دانید؟ و آیا مشکلی دارید؟ راحت باشید و از ما سوال کنید. و فراموش نکنید که برای پست ها و به روز رسانی های بیشتر از سایت ما ExcelWIKI دیدن کنید.

هیو وست یک مربی و تحلیلگر اکسل بسیار با تجربه با بیش از 10 سال تجربه در این صنعت است. وی دارای مدرک لیسانس در رشته حسابداری و امور مالی و مدرک کارشناسی ارشد در رشته مدیریت بازرگانی است. هیو علاقه زیادی به تدریس دارد و یک رویکرد آموزشی منحصر به فرد ایجاد کرده است که به راحتی قابل پیگیری و درک است. دانش تخصصی او از اکسل به هزاران دانش آموز و متخصص در سراسر جهان کمک کرده تا مهارت های خود را بهبود بخشند و در حرفه خود برتری پیدا کنند. هیو از طریق وبلاگ خود دانش خود را با جهان به اشتراک می گذارد و آموزش های رایگان اکسل و آموزش آنلاین ارائه می دهد تا به افراد و مشاغل کمک کند تا به پتانسیل کامل خود دست یابند.