Efnisyfirlit
Eitt algengasta vandamálið sem við lendum í þegar unnið er með afritun og límingu í VBA er keyrslutímavillan 1004 : PasteSpecial Method of Range Class Failed . Í þessari grein mun ég sýna þér hverjar hugsanlegar ástæður liggja að baki þessari villu og hvernig á að leysa þær, með réttum dæmum og myndskreytingum.
Hlaða niður æfingarvinnubók
Sæktu þessa æfingabók til að æfa á meðan þú ert að lesa þessa grein.
PasteSpecial Method Failed.xlsm
PasteSpecial Method of Range Class Failed: Causes og lausnir
Án frekari tafar skulum við fara í aðalumræðuna okkar. Það er, hverjar gætu verið mögulegar ástæður á bak við þessa villu og hvernig á að leysa þær.
Ástæða 1: Aðgangur að PasteSpecial aðferð án þess að afrita neitt
Þetta er mest algeng ástæða fyrir villunni. Það er, að reyna að fá aðgang að PasteSpecial aðferðinni án þess að afrita neitt.
Til þess að skilja það greinilega skaltu athuga eftirfarandi VBA kóða.
⧭ VBA kóða:
7790
Hér höfum við notað PasteSpecial aðferðina VBA án afrita hvað sem er. Þannig að Excel mun birta keyrsluvillu 1004 þegar þú keyrir það.
⧭ Lausn:
Til að leysa þetta vandamál þarftu fyrst að afrita fjölda hólfa og síðan opna PasteSpecial aðferðina.
6265
Þegar þú keyrir þennan kóða, það munlímdu formúlurnar fyrir bilið B3:B5 virka vinnublaðsins á valið bil.
Lesa meira: PasteSpecial aðferð við vinnublaðsflokk mistókst (Ástæður og lausnir)
Ástæða 2: Aðgangur að PasteSpecial aðferð með stafsetningarvillu
Þetta er önnur algeng ástæða á bak við villa. Það er að segja til að fá aðgang að PasteSpecial aðferðinni með stafsetningarvillum í hvaða rifrildi sem er.
Líttu á eftirfarandi VBA kóða til að gera það skýrt. Hér höfum við gert stafsetningarvillu í röksemdinni xlPasteAll .
⧭ VBA Code:
4814
Þegar þú keyrir þennan kóða færðu keyrsluvilluna 1004 .
⧭ Lausn:
Lausnin er auðveld. Ég er viss um að þú hafir nú þegar giskað á það. Gakktu úr skugga um að stafsetning allra röksemda hafi verið rétt.
Og villan hverfur sjálfkrafa.
Lesa meira: Hvernig á að nota Paste Sérskipun í Excel (5 viðeigandi leiðir)
Svipuð lestur
- Excel VBA: Copy Range to Another Workbook
- Afrita og líma gildi í næstu tómu línu með Excel VBA (3 dæmi)
- Beita VBA PasteSpecial og halda upprunasniði í Excel
- Hvernig á að afrita sama gildi í mörgum frumum í Excel (4 aðferðir)
- Excel VBA til að afrita línur í annað vinnublað byggt á forsendum
Ástæða 3: Að opna nýttVinnubók eftir afritun sem hættir við afrita/líma stillingu
Þetta er önnur mikilvæg ástæða á bak við villuna. Það er að gera eitthvað sem hættir við afrita/líma stillinguna áður en þú límir.
Skoðaðu eftirfarandi kóða til að skilja skýrt.
⧭ VBA Code:
4204
Hér höfum við afritað bilið B3:B5 úr Sheet1 vinnubókar sem heitir Workbook1 .
Svo höfum við búið til nýja vinnubók sem heitir Workbook2 í sömu möppu og reynt að líma afritaða sviðið í svið B3:B5 af Sheet1 í þeirri vinnubók.
En þegar við keyrum kóðann mun hann birta PasteSpecial Method of Range Class Failed Villa, því um leið og við búum til nýju vinnubókina, er copy/paste mode verður hætt.
⧭ Lausn:
Til að leysa þetta vandamál skaltu fyrst skrifa niður kóðalínurnar til að búa til nýju vinnubókina sem heitir Workbook2 .
Settu síðan inn línurnar til að virkja Workbook1 og afritaðu æskilegt svið úr henni.
Og að lokum, virkjaðu Workbook2 og límdu afritaða svið þar.
8714
Keyra þennan kóða. Það mun afrita sviðið B3:B5 úr Sheet1 af Workbook1.
Og líma það í Sheet1 í nýstofnuðu vinnubókinni sem heitir Workbook2 .
⧭ Varúð:
Auðvitað, ekki gleyma að halda vinnubók1 opinni meðan þú keyrirkóða.
Lesa meira: Hvernig á að slökkva á afrita og líma í Excel án fjölva (með 2 skilyrðum)
Ástæða 4: Að breyta Application.CutCopyMode í False sem hættir við Copy/Paste Mode
Að lokum gæti verið önnur ástæða fyrir því að villan gerist. Við gætum slökkt á Application.CutCopyMode fyrir mistök áður en við opnum PasteSpecial aðferðina.
Þó að það sé ekki mjög algengt, gerum við það samt stundum þegar við eigum að vinna með langan fjölda lína.
Sjá eftirfarandi kóða til að skilja hann greinilega. Hér höfum við afritað sviðið B3:B5 , en hætt við CutCopyMode áður en það var límt það.
⧭ VBA kóða:
2868
Þegar þú keyrir kóðann mun hann sýna PasteSpecial Method of Range Class Failed villuna.
⧭ Lausn:
Ég býst við að nú hafið þið öll giskað á lausnina. Það er frekar einfalt í raun. Fjarlægðu bara línuna úr kóðanum sem slekkur á CutCopy ham.
Svo, réttur VBA kóði verður:
4726
Það mun afrita sviðið B3:B5 og líma það yfir D3:D5 án vandræða.
Lesa meira: VBA Paste Special til að afrita gildi og snið í Excel (9 dæmi)
Hlutur til að muna
Hér hef ég aðeins sýnt þau vandamál sem þú gætir lent í þegar þú vinnur með PasteSpecial aðferðinni í VBA. Ef þúviltu kynna þér PasteSpecial aðferðina í smáatriðum, farðu á þennan hlekk .
Niðurstaða
Svo, í stuttu máli, þessar eru ástæðurnar sem geta valdið keyrsluvillunni 1004: PasteSpecial Method od Range Class Failed í kóðanum þínum. Ég vona að þú hafir skilið öll atriðin skýrt og þau munu hjálpa þér mikið í framtíðinni. Veistu einhverjar aðrar ástæður? Og áttu í einhverjum vandræðum? Ekki hika við að spyrja okkur. Og ekki gleyma að heimsækja síðuna okkar ExcelWIKI fyrir fleiri færslur og uppfærslur.