Tabela e përmbajtjes
Një nga problemet më të zakonshme që hasim gjatë punës me kopjimin dhe ngjitjen në VBA është gabimi i kohës së ekzekutimit 1004 : PasteSpecial Method of Range Class Failed . Në këtë artikull, unë do t'ju tregoj se cilat janë arsyet e mundshme pas këtij gabimi dhe si t'i zgjidhni ato, me shembuj dhe ilustrime të duhura.
Shkarko librin e punës praktike
Shkarkoni këtë libër pune praktike për të ushtruar ndërkohë që jeni duke lexuar këtë artikull.
Metoda PasteSpecial Failed.xlsm
PasteSpecial Method of Range Class Failed: Shkaqet dhe Zgjidhjet
Pa vonesë të mëtejshme, le të kalojmë në diskutimin tonë kryesor. Kjo do të thotë, cilat mund të jenë arsyet e mundshme pas këtij gabimi dhe si t'i zgjidhni ato.
Arsyeja 1: Qasja në metodën PasteSpecial pa kopjuar asgjë
Kjo është më e Arsyeja e zakonshme pas gabimit. Kjo do të thotë, duke u përpjekur të hyni në metodën PasteSpecial pa kopjuar asgjë.
Për ta kuptuar qartë, kontrolloni kodin e mëposhtëm VBA .
⧭ Kodi VBA:
6073
Këtu, ne kemi përdorur metodën PasteSpecial të VBA pa duke kopjuar ndonjë gjë. Kështu që Excel do të shfaqë një gabim në kohën e ekzekutimit 1004 kur ta ekzekutoni.
⧭ Zgjidhja:
Për të zgjidhur këtë problem, së pari, duhet të kopjoni një sërë qelizash dhe më pas të përdorni metodën PasteSpecial .
1944
Kur të ekzekutoni këtë kod, dongjitni formulat e diapazonit B3:B5 të fletës aktive të punës në intervalin e zgjedhur.
Lexo më shumë: Metoda PasteSpecial e klasës së fletës së punës dështoi (Arsyet dhe zgjidhjet)
Arsyeja 2: Qasja në metodën PasteSpecial me gabim drejtshkrimor
Kjo është një tjetër arsye e zakonshme prapa gabim. Kjo do të thotë, për të hyrë në metodën PasteSpecial me gabime drejtshkrimore në çdo argument.
Shiko kodin e mëposhtëm VBA për ta bërë të qartë. Këtu kemi bërë një gabim drejtshkrimor në argumentin xlPasteAll .
⧭ Kodi VBA:
7648
Kur të ekzekutoni këtë kod, do të merrni gabimin e kohës së ekzekutimit 1004 .
⧭ Zgjidhja:
Zgjidhja është e lehtë. Jam i sigurt që tashmë e keni marrë me mend këtë. Vetëm sigurohuni që drejtshkrimi i të gjitha argumenteve të jenë bërë saktë.
Dhe gabimi do të zhduket automatikisht.
Lexo më shumë: Si të përdoret ngjitja Komanda speciale në Excel (5 mënyra të përshtatshme)
Lexime të ngjashme
- Excel VBA: Kopjo gamë në një libër tjetër pune
- Kopjo dhe ngjit vlerat në rreshtin tjetër bosh me Excel VBA (3 shembuj)
- Apliko VBA PasteSpecial dhe mbaj formatimin e burimit në Excel
- Si të kopjoni të njëjtën vlerë në qeliza të shumta në Excel (4 metoda)
- Excel VBA për të kopjuar rreshtat në një fletë tjetër pune bazuar në kritere
Arsyeja 3: Hapja e një të rejeLibri i punës pas kopjimit që anulon modalitetin e kopjimit/ngjitjes
Kjo është një tjetër arsye e rëndësishme pas gabimit. Kjo do të thotë, të bëni diçka që anulon modalitetin e kopjimit/ngjitjes përpara se të ngjitni.
Shikoni kodin e mëposhtëm për ta kuptuar qartë.
⧭ Kodi VBA:
3533
Këtu kemi kopjuar diapazonin B3:B5 nga Fleta1 e një libri pune të quajtur Libri i punës1 .
Më pas ne kemi krijuar një libër të ri pune të quajtur Workbook2 në të njëjtën dosje dhe u përpoqëm të ngjisnim gamën e kopjuar në intervalin B3:B5 të Fletës1 të atij libri pune.
Por kur të ekzekutojmë kodin, ai do të shfaqë një gabim PasteSpecial Method of Range Class Failed , sepse në momentin që krijojmë librin e ri të punës, modaliteti i kopjimit/ngjitjes do të anulohet.
⧭ Zgjidhja:
Për të zgjidhur këtë problem, fillimisht shkruani poshtë rreshtave të kodit për të krijuar librin e ri të punës të quajtur Libri i punës2 .
Më pas futni rreshtat për të aktivizuar Libri i punës1 dhe kopjoni gamën e dëshiruar prej tij.
0>Dhe së fundi, aktivizoni Workbook2 dhe ngjisni atje gamën e kopjuar.
5962
Ekzekutoni këtë kod. Do të kopjojë gamën B3:B5 nga Fleta1 e Libri i punës1.
Dhe ngjit në Fleta1 e librit të punës të krijuar rishtazi të quajtur Libri i punës2 .
⧭ Masa paraprake:
Natyrisht, mos harroni të mbani hapur Librin e punës1 gjatë ekzekutimit tëkodi.
Lexo më shumë: Si të çaktivizohet kopjimi dhe ngjitja në Excel pa makro (me 2 kritere)
Arsyeja 4: Duke e kthyer Application.CutCopyMode në False që anulon modalitetin e kopjimit/ngjitjes
Më në fund, mund të ketë një arsye tjetër për të ndodhur gabimi. Mund ta çaktivizojmë gabimisht Application.CutCopyMode përpara se të qasemi në metodën PasteSpecial .
Megjithëse nuk është një praktikë shumë e zakonshme, megjithatë ndonjëherë ne e bëjmë atë kur duhet të punoni me një numër të gjatë rreshtash.
Shihni kodin e mëposhtëm për ta kuptuar qartë. Këtu kemi kopjuar intervalin B3:B5 , por kemi anuluar CutCopyMode përpara se ta ngjitim.
⧭ Kodi VBA:
7707
Kur do të ekzekutoni kodin, ai do të shfaqë gabimin PasteSpecial Method of Range Class Failed .
⧭ Zgjidhja:
Unë mendoj se deri tani të gjithë e keni marrë me mend zgjidhjen. Është mjaft e thjeshtë në fakt. Thjesht hiqni rreshtin nga kodi që çaktivizon modalitetin CutCopy .
Pra, kodi i saktë VBA do të jetë:
5603
Do të kopjojë gamën B3:B5 dhe do ta ngjisë mbi D3:D5 pa asnjë problem.
Lexo më shumë: VBA Paste Special për të kopjuar vlerat dhe formatet në Excel (9 shembuj)
Gjërat për t'u mbajtur mend
Këtu kam treguar vetëm problemet që mund të hasni gjatë punës me metodën PasteSpecial në VBA. Nëse judëshironi të dini metodën PasteSpecial në detaje, vizitoni këtë lidhje .
Përfundim
Pra, me pak fjalë, këto janë arsyet që mund të shkaktojnë gabimin e kohës së ekzekutimit 1004: PasteSpecial Method od Range Class Failed në kodin tuaj. Shpresoj se i keni kuptuar qartë të gjitha pikat dhe ato do t'ju ndihmojnë shumë në të ardhmen. A dini ndonjë arsye tjetër? Dhe a keni ndonjë problem? Mos ngurroni të na pyesni. Dhe mos harroni të vizitoni faqen tonë ExcelWIKI për më shumë postime dhe përditësime.