Sadržaj
Jedan od najčešćih problema s kojima se susrećemo dok radimo sa kopiranjem i lijepljenjem u VBA je greška u vremenu izvođenja 1004 : PasteSpecial Method of Range Class Failed . U ovom članku ću vam pokazati koji su mogući razlozi iza ove greške i kako ih riješiti, uz odgovarajuće primjere i ilustracije.
Preuzmite Vježbenicu
Preuzmite ovu radnu svesku za vježbanje dok čitate ovaj članak.
PasteSpecial Method Failed.xlsm
PasteSpecial Method of Range Class Failed: Uzroci i rješenja
Bez daljeg odlaganja, idemo na našu glavnu diskusiju. Odnosno, koji mogu biti mogući razlozi iza ove greške i kako ih riješiti.
Razlog 1: Pristup PasteSpecial metodi bez kopiranja bilo čega
Ovo je najviše uobičajeni razlog za grešku. To jest, pokušavate pristupiti metodi PasteSpecial bez kopiranja bilo čega.
Da biste je jasno razumjeli, provjerite sljedeći VBA kod.
⧭ VBA kod:
1469
Ovdje smo koristili PasteSpecial metodu VBA bez kopiranje bilo čega. Dakle, Excel će prikazati grešku u vremenu izvođenja 1004 kada ga pokrenete.
⧭ Rješenje:
Da biste riješili ovaj problem, prvo morate kopirati raspon ćelija, a zatim pristupiti metodi PasteSpecial .
4343
Kada pokrenete ovaj kod, to ćezalijepite formule raspona B3:B5 aktivnog radnog lista u odabrani raspon.
Pročitajte više: PasteSpecial Metoda klase radnog lista nije uspjela (razlozi i rješenja)
Razlog 2: Pristup PasteSpecial metodi sa pravopisnom greškom
Ovo je još jedan uobičajeni razlog za greška. Odnosno, da pristupite metodi PasteSpecial sa pravopisnom(ih) greškom(ima) u bilo kojem argumentu.
Pogledajte sljedeći VBA kod da vam bude jasno. Ovdje smo napravili pravopisnu grešku u argumentu xlPasteAll .
⧭ VBA kod:
2504
Kada pokrenete ovaj kod, dobit ćete grešku vremena izvođenja 1004 .
⧭ Rješenje:
Rješenje je jednostavno. Siguran sam da ste to već pogodili. Samo provjerite da li su svi argumenti ispravno napisani.
I greška će automatski nestati.
Pročitajte više: Kako koristiti Paste Posebna naredba u Excelu (5 odgovarajućih načina)
Slična očitanja
- Excel VBA: Kopiraj raspon u drugu radnu knjigu
- Kopiraj i zalijepi vrijednosti u sljedeći prazan red s Excel VBA (3 primjera)
- Primijeni VBA PasteSpecial i zadrži izvorno formatiranje u Excelu
- Kako kopirati istu vrijednost u više ćelija u Excelu (4 metode)
- Excel VBA za kopiranje redova na drugi radni list na osnovu kriterija
Razlog 3: Otvaranje novogRadna sveska nakon kopiranja koja poništava način kopiranja/lijepljenja
Ovo je još jedan važan razlog iza greške. To jest, da uradite nešto što poništava režim kopiranja/lepljenja pre lepljenja.
Pogledajte sledeći kod da biste bolje razumeli.
⧭ VBA kod:
4201
Ovdje smo kopirali raspon B3:B5 iz Sheet1 radne knjige pod nazivom Workbook1 .
Zatim smo kreirali novu radnu knjigu pod nazivom Radna knjiga2 u istom folderu i pokušali zalijepiti kopirani raspon u raspon B3:B5 od Sheet1 te radne knjige.
Ali kada pokrenemo kod, prikazat će grešku PasteSpecial Method of Range Class Failed , jer u trenutku kada kreiramo novu radnu knjigu, način kopiranja/lijepljenja će biti otkazan.
⧭ Rješenje:
Da biste riješili ovaj problem, prvo napišite niz redove koda da kreirate novu radnu svesku pod nazivom Radna sveska2 .
Zatim umetnite redove da aktivirate Radna sveska1 i kopirajte željeni opseg iz nje.
I na kraju, aktivirajte Radna knjiga2 i zalijepite kopirani raspon tamo.
7218
Pokrenite ovaj kod. Kopirat će raspon B3:B5 iz Sheet1 od Workbook1.
I zalijepiti ga u Sheet1 novokreirane radne knjige pod nazivom Workbook2 .
⧭ Mjera opreza:
Očigledno, ne zaboravite držati Workbook1 otvorenim dok pokrećetecode.
Pročitajte više: Kako onemogućiti kopiranje i lijepljenje u Excelu bez makroa (sa 2 kriterija)
4. razlog: Prebacivanje Application.CutCopyMode na False što poništava način rada za kopiranje/lijepljenje
Konačno, može postojati još jedan razlog za pojavu greške. Možemo isključiti Application.CutCopyMode greškom prije nego što pristupimo metodi PasteSpecial .
Iako to nije uobičajena praksa, ipak ponekad to učinimo kada želimo radite sa velikim brojem linija.
Pogledajte sljedeći kod da biste ga jasno razumjeli. Ovdje smo kopirali raspon B3:B5 , ali smo otkazali CutCopyMode prije nego što smo ga zalijepili.
⧭ VBA kod:
7722
Kada pokrenete kod, on će pokazati grešku PasteSpecial Method of Range Class Failed .
⧭ Rješenje:
Pretpostavljam da ste do sada svi pogodili rješenje. Zapravo je prilično jednostavno. Samo uklonite red iz koda koji isključuje način rada CutCopy .
Dakle, ispravan VBA kod će biti:
9692
Kopirat će raspon B3:B5 i zalijepiti ga preko D3:D5 bez ikakvih problema.
Pročitajte više: VBA Paste Special za kopiranje vrijednosti i formata u Excel (9 primjera)
Stvari koje treba zapamtiti
Ovdje sam prikazao samo probleme na koje možete naići dok radite sa metodom PasteSpecial u VBA. AkoŽelite li detaljnije upoznati metodu PasteSpecial , posjetite ovu vezu .
Zaključak
Dakle, ukratko, ovi su razlozi koji mogu uzrokovati grešku u vremenu izvođenja 1004: PasteSpecial Method od Range Class Failed u vašem kodu. Nadam se da ste jasno razumeli sve tačke i da će vam one mnogo pomoći u budućnosti. Znate li još neke razloge? I imate li problema? Slobodno nas pitajte. I ne zaboravite posjetiti našu stranicu ExcelWIKI za više objava i ažuriranja.