გაშვების დროის შეცდომა 1004: დიაპაზონის კლასის PasteSpecial მეთოდი ვერ მოხერხდა

  • გააზიარეთ ეს
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 კოდი:

1797

აქ ჩვენ გამოვიყენეთ PasteSpecial მეთოდი VBA გარეშე რაიმეს კოპირება. ასე რომ, Excel აჩვენებს გაშვების დროის შეცდომას 1004 , როდესაც თქვენ გაშვებთ.

⧭ გამოსავალი:

ამ პრობლემის გადასაჭრელად, ჯერ უნდა დააკოპიროთ უჯრედების დიაპაზონი, შემდეგ შეხვიდეთ PasteSpecial მეთოდზე.

1988

როდესაც ამ კოდს გაუშვით, ეს იქნებაჩასვით აქტიური სამუშაო ფურცლის დიაპაზონის B3:B5 ფორმულები არჩეულ დიაპაზონში.

დაწვრილებით: სამუშაო ფურცლის კლასის PasteSpecial მეთოდი ვერ მოხერხდა (მიზეზები და გადაწყვეტილებები)

მიზეზი 2: PasteSpecial მეთოდზე წვდომა ორთოგრაფიული შეცდომით

ეს არის კიდევ ერთი გავრცელებული მიზეზი შეცდომა. ანუ ნებისმიერ არგუმენტში PasteSpecial მეთოდიზე წვდომა ორთოგრაფიული შეცდომით(ებ)ით.

შეხედეთ შემდეგ VBA კოდს ამის გასაგებად. აქ ჩვენ დავუშვით ორთოგრაფიული შეცდომა არგუმენტში xlPasteAll .

⧭ VBA კოდი:

5948

როდესაც ამ კოდს გაუშვით, მიიღებთ გაშვების დროის შეცდომას 1004 .

⧭ გამოსავალი:

გამოსავალი მარტივია. დარწმუნებული ვარ, ეს უკვე გამოიცანით. უბრალოდ დარწმუნდით, რომ ყველა არგუმენტის მართლწერა სწორად არის გაკეთებული.

და შეცდომა ავტომატურად გაქრება.

დაწვრილებით: როგორ გამოვიყენოთ პასტა სპეციალური ბრძანება Excel-ში (5 შესაფერისი გზა)

მსგავსი წაკითხვები

  • Excel VBA: დააკოპირეთ დიაპაზონი სხვა სამუშაო წიგნში
  • დააკოპირეთ და ჩასვით მნიშვნელობები შემდეგ ცარიელ მწკრივზე Excel VBA-ით (3 მაგალითი)
  • გამოიყენეთ VBA PasteSpecial და შეინახეთ წყაროს ფორმატირება Excel-ში
  • როგორ დავაკოპიროთ ერთი და იგივე მნიშვნელობა მრავალ უჯრედში Excel-ში (4 მეთოდი)
  • Excel VBA კრიტერიუმების საფუძველზე რიგების სხვა სამუშაო ფურცელზე დასაკოპირებლად

მიზეზი 3: ახლის გახსნასამუშაო წიგნი კოპირების შემდეგ, რომელიც აუქმებს კოპირების/ჩასმის რეჟიმს

ეს არის შეცდომის კიდევ ერთი მნიშვნელოვანი მიზეზი. ანუ, ისეთი რამის გაკეთება, რაც გააუქმებს კოპირების/პასტის რეჟიმს ჩასმამდე.

შეხედეთ შემდეგ კოდს ნათლად გასაგებად.

⧭ VBA კოდი:

9107

აქ ჩვენ დავაკოპირეთ დიაპაზონი B3:B5 სამუშაო წიგნის Sheet1 -დან, სახელწოდებით Workbook1 .

შემდეგ ჩვენ შევქმენით ახალი სამუშაო წიგნი სახელწოდებით Workbook2 იმავე საქაღალდეში და ვცადეთ კოპირებული დიაპაზონის ჩასმა დიაპაზონში B3:B5 Sheet1<-ის დიაპაზონში. 2> ამ სამუშაო წიგნის.

მაგრამ კოდს გაშვებისას გამოჩნდება PasteSpecial Method of Range Class Failed შეცდომა, რადგან ახალი სამუშაო წიგნის შექმნის მომენტში, კოპირების/ჩასმის რეჟიმი გაუქმდება.

⧭ გამოსავალი:

ამ პრობლემის გადასაჭრელად, ჯერ დაწერეთ ქვემოთ კოდის სტრიქონები, რათა შეიქმნას ახალი სამუშაო წიგნი სახელწოდებით Workbook2 .

შემდეგ ჩასვით ხაზები Workbook1 გასააქტიურებლად და მისგან დააკოპირეთ სასურველი დიაპაზონი.

0>და ბოლოს, გაააქტიურეთ Workbook2 და ჩასვით კოპირებული დიაპაზონი.

3381

გაუშვით ეს კოდი. ის დააკოპირებს დიაპაზონს B3:B5 Sheet1 -დან Workbook1-დან.

და ჩასვით მას ახლად შექმნილი სამუშაო წიგნის ფურცელ1 -ში, სახელწოდებით სამუშაო წიგნი2 .

⧭ სიფრთხილე:

ცხადია, არ დაგავიწყდეთ, რომ გახსნათ Workbook1 გაშვებისასკოდი.

დაწვრილებით: როგორ გამორთოთ კოპირება და ჩასმა Excel-ში მაკროს გარეშე (2 კრიტერიუმით)

მიზეზი 4: Application.CutCopyMode-ზე გადაქცევა False-ზე, რომელიც აუქმებს კოპირების/ჩასმის რეჟიმს

საბოლოოდ, შეცდომის სხვა მიზეზი შეიძლება იყოს. Application.CutCopyMode შეიძლება შეცდომით გამოვრთოთ PasteSpecial მეთოდზე წვდომამდე.

მიუხედავად იმისა, რომ ეს არ არის ძალიან გავრცელებული პრაქტიკა, მაინც ზოგჯერ ვაკეთებთ ამას, როდესაც ვაპირებთ იმუშავეთ ხაზების დიდ რაოდენობასთან.

იხილეთ შემდეგი კოდი მისი ნათლად გასაგებად. აქ ჩვენ დავაკოპირეთ დიაპაზონი B3:B5 , მაგრამ გავაუქმეთ CutCopyMode ჩასმამდე.

⧭ VBA კოდი:

6049

როდესაც კოდს გაუშვით, ის აჩვენებს PasteSpecial Method of Range Class Failed შეცდომას.

⧭ გამოსავალი:

ვფიქრობ, ამ დროისთვის თქვენ ყველამ გამოიცნოთ გამოსავალი. სინამდვილეში საკმაოდ მარტივია. უბრალოდ ამოიღეთ ხაზი კოდიდან, რომელიც გამორთავს CutCopy რეჟიმს.

ასე რომ, სწორი VBA კოდი იქნება:

3506

ის დააკოპირებს დიაპაზონს B3:B5 და ჩასმავს მას D3:D5 უპრობლემოდ.

დაწვრილებით: VBA Paste სპეციალური მნიშვნელობებისა და ფორმატების კოპირებისთვის Excel-ში (9 მაგალითი)

რაც უნდა გახსოვდეთ

აქ მე ვაჩვენე მხოლოდ ის პრობლემები, რომლებიც შეიძლება შეგხვდეთ PasteSpecial მეთოდთან მუშაობისას VBA-ში. თუ თქვენგსურთ იცოდეთ PasteSpecial მეთოდი დეტალურად, ეწვიეთ ამ ბმულს .

დასკვნა

მაშ ასე, მოკლედ, ეს არის მიზეზები, რამაც შეიძლება გამოიწვიოს გაშვების დროის შეცდომა 1004: PasteSpecial Method od Range Class Failed თქვენს კოდში. ვიმედოვნებ, რომ ნათლად გაიგეთ ყველა პუნქტი და ეს ძალიან დაგეხმარებათ მომავალში. სხვა მიზეზები თუ იცით? და რამე პრობლემა გაქვს? თავისუფლად გვკითხეთ. და არ დაგავიწყდეთ ეწვიოთ ჩვენს საიტს ExcelWIKI მეტი პოსტებისა და განახლებისთვის.

ჰიუ ვესტი არის Excel-ის ძალიან გამოცდილი ტრენერი და ანალიტიკოსი, რომელსაც აქვს 10 წელზე მეტი გამოცდილება ინდუსტრიაში. მას აქვს ბაკალავრის ხარისხი ბუღალტერიასა და ფინანსებში და მაგისტრის ხარისხი ბიზნესის ადმინისტრირებაში. ჰიუს აქვს სწავლების გატაცება და შეიმუშავა სწავლების უნიკალური მიდგომა, რომელიც ადვილად გასაგები და გასაგებია. მისი ექსპერტი Excel-ის ცოდნა დაეხმარა ათასობით სტუდენტს და პროფესიონალს მთელს მსოფლიოში, გაეუმჯობესებინათ თავიანთი უნარები და გამოირჩეოდნენ თავიანთ კარიერაში. თავისი ბლოგის საშუალებით, ჰიუ უზიარებს თავის ცოდნას მსოფლიოს, სთავაზობს უფასო Excel გაკვეთილებს და ონლაინ ტრენინგებს, რათა დაეხმაროს ინდივიდებსა და ბიზნესს თავიანთი პოტენციალის სრულად მიღწევაში.