Სარჩევი
ერთ-ერთი ყველაზე გავრცელებული პრობლემა, რომელსაც ვხვდებით 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 მეტი პოსტებისა და განახლებისთვის.