INHOUDSOPGAWE
Een van die mees algemene probleme wat ons teëkom terwyl ons met kopieer en plak in VBA werk, is die looptydfout 1004 : PasteSpecial Method of Range Class Failed . In hierdie artikel sal ek jou wys wat die moontlike redes agter hierdie fout is en hoe om dit op te los, met behoorlike voorbeelde en illustrasies.
Laai die oefenwerkboek af
Laai hierdie oefenwerkboek af om te oefen terwyl jy hierdie artikel lees.
PasteSpecial Method Failed.xlsm
PasteSpecial Method of Range Class Failed: Causes en oplossings
Sonder verdere vertraging, kom ons gaan na ons hoofbespreking. Dit wil sê, wat kan die moontlike redes agter hierdie fout wees, en hoe om dit op te los.
Rede 1: Toegang tot PasteSpecial-metode sonder om enigiets te kopieer
Dit is die mees algemene rede vir die fout. Dit wil sê om toegang tot die PasteSpecial -metode te kry sonder om iets te kopieer.
Om dit duidelik te verstaan, kontroleer die volgende VBA kode.
⧭ VBA-kode:
2259
Hier het ons die PasteSpecial -metode van VBA gebruik sonder enigiets te kopieer. Dus sal Excel 'n looptydfout 1004 vertoon wanneer jy dit hardloop.
⧭ Oplossing:
Om hierdie probleem op te los, moet jy eers 'n reeks selle kopieer en dan toegang tot die PasteSpecial -metode.
5531
Wanneer jy hierdie kode hardloop, dit salplak die formules van die reeks B3:B5 van die aktiewe werkblad na die geselekteerde reeks.
Lees meer: PasteSpecial-metode van werkbladklas het misluk (Redes en oplossings)
Rede 2: Toegang tot PasteSpecial-metode met spelfout
Dit is nog 'n algemene rede agter die fout. Dit wil sê om toegang te verkry tot die PasteSpecial -metode met spelfout(e) in enige argument.
Kyk na die volgende VBA -kode om dit duidelik te maak. Hier het ons 'n spelfout in die argument xlPasteAll gemaak.
⧭ VBA-kode:
4149
Wanneer jy hierdie kode laat loop, sal jy die looptydfout 1004 kry.
⧭ Oplossing:
Die oplossing is maklik. Ek is seker jy het dit reeds geraai. Maak net seker dat die spellings van al die argumente korrek gemaak is.
En die fout sal outomaties verdwyn.
Lees Meer: Hoe om Plak te Gebruik Spesiale opdrag in Excel (5 geskikte maniere)
Soortgelyke lesings
- Excel VBA: Kopieer reeks na 'n ander werkboek
- Kopieer en plak waardes na volgende leë ry met Excel VBA (3 voorbeelde)
- Pas VBA PasteSpecial toe en hou bronformatering in Excel
- Hoe om dieselfde waarde in veelvuldige selle in Excel te kopieer (4 metodes)
- Excel VBA om rye na 'n ander werkblad te kopieer gebaseer op kriteria
Rede 3: Maak 'n nuwe oopWerkboek na kopiëring wat die kopieer/plak-modus kanselleer
Dit is nog 'n belangrike rede agter die fout. Dit wil sê om iets te doen wat die kopieer/plak-modus kanselleer voordat dit geplak word.
Kyk na die volgende kode om duidelik te verstaan.
⧭ VBA-kode:
5877
Hier het ons die reeks B3:B5 van die Blad1 van 'n werkboek genaamd Werkboek1 gekopieer.
Dan het ons 'n nuwe werkboek genaamd Werkboek2 in dieselfde vouer geskep en probeer om die gekopieerde reeks na die reeks B3:B5 van Blad1
Maar wanneer ons die kode hardloop, sal dit 'n PasteSpecial Method of Range Class Failed fout vertoon, want die oomblik wat ons die nuwe werkboek skep, die kopieer/plakmodus sal gekanselleer word.
⧭ Oplossing:
Om hierdie probleem op te los, skryf eers die reëls kode af om die nuwe werkboek genaamd Werkboek2 te skep.
Voeg dan die reëls in om Werkboek1 te aktiveer en kopieer die verlangde reeks daaruit.
En laastens, aktiveer Werkboek2 en plak die gekopieerde reeks daar.
4801
Laat hierdie kode hardloop. Dit sal die reeks B3:B5 vanaf Blad1 van Werkboek1 kopieer.
En plak dit in Blad1 van die nuutgeskepte werkboek genaamd Werkboek2 .
⧭ Voorsorgmaatreël:
Natuurlik, moenie vergeet om Werkboek1 oop te hou terwyl jy diekode.
Lees meer: Hoe om kopieer en plak in Excel te deaktiveer sonder makro's (met 2 kriteria)
Rede 4: Verander Application.CutCopyMode na False wat die kopieer/plakmodus kanselleer
Laastens kan daar nog 'n rede wees waarom die fout gebeur. Ons kan die Application.CutCopyMode verkeerdelik afskakel voordat ons toegang tot die PasteSpecial -metode kry.
Alhoewel dit nie 'n baie algemene praktyk is nie, maak ons dit soms nog steeds wanneer ons moet werk met 'n lang aantal reëls.
Sien die volgende kode om dit duidelik te verstaan. Hier het ons die reeks B3:B5 gekopieer, maar die CutCopyMode gekanselleer voordat ons dit geplak het.
⧭ VBA-kode:
9547
Wanneer jy die kode sal laat loop, sal dit die PasteSpecial Method of Range Class Failed -fout wys.
⧭ Oplossing:
Ek dink julle het nou almal die oplossing geraai. Dit is eintlik redelik eenvoudig. Verwyder net die reël van die kode wat die CutCopy -modus afskakel.
Dus, die korrekte VBA -kode sal wees:
8627
Dit sal die reeks B3:B5 kopieer en dit oor die D3:D5 plak sonder enige probleme.
Lees meer: VBA Plak spesiaal om waardes en formate in Excel te kopieer (9 voorbeelde)
Dinge om te onthou
Hier het ek slegs die probleme gewys wat jy kan teëkom terwyl jy met die PasteSpecial -metode in VBA werk. As jywil jy die PasteSpecial -metode in detail leer ken, besoek hierdie skakel .
Gevolgtrekking
So, kortliks, hierdie is die redes wat die looptydfout 1004: PasteSpecial Method od Range Class Failed in jou kode kan veroorsaak. Ek hoop jy het al die punte duidelik verstaan en dit sal jou baie help in die toekoms. Ken jy enige ander redes? En het jy enige probleme? Vra ons gerus. En moenie vergeet om ons webwerf ExcelWIKI te besoek vir meer plasings en opdaterings nie.