Error de temps d'execució 1004: el mètode PasteSpecial de la classe d'interval ha fallat

  • Comparteix Això
Hugh West

Un dels problemes més habituals que ens trobem mentre treballem amb copiar i enganxar a VBA és l' error de temps d'execució 1004 : Mètode especial de la classe d'interval ha fallat . En aquest article, us mostraré quines són les possibles raons darrere d'aquest error i com resoldre'ls, amb exemples i il·lustracions adequats.

Descarregueu el quadern de pràctiques

Baixeu aquest quadern de pràctiques per fer exercici mentre llegiu aquest article.

PasteSpecial Method Failed.xlsm

PasteSpecial Method of Range Class Error: causes i solucions

Sense més demora, anem a la nostra discussió principal. És a dir, quines poden ser les possibles raons darrere d'aquest error i com resoldre'ls.

Raó 1: accedir al mètode PasteSpecial sense copiar res

Aquest és el més raó comuna darrere de l'error. És a dir, intentar accedir al mètode PasteSpecial sense copiar res.

Per entendre-ho clarament, comproveu el codi VBA següent.

⧭ Codi VBA:

5873

Aquí hem utilitzat el mètode PasteSpecial de VBA sense copiant qualsevol cosa. Així, Excel mostrarà un error en temps d'execució 1004 quan l'executeu.

⧭ Solució:

Per resoldre aquest problema, primer, heu de copiar un rang de cel·les i després accedir al mètode PasteSpecial .

3961

Quan executeu aquest codi, ho faràenganxeu les fórmules de l'interval B3:B5 del full de treball actiu a l'interval seleccionat.

Llegir més: El mètode PasteSpecial de la classe del full de treball ha fallat (motius i solucions)

Raó 2: s'accedeix al mètode PasteSpecial amb errors ortogràfics

Aquesta és una altra raó comú darrere del error. És a dir, per accedir al mètode PasteSpecial amb errors ortogràfics en qualsevol argument.

Mireu el codi VBA següent per deixar-ho clar. Aquí hem comès un error ortogràfic a l'argument xlPasteAll .

⧭ Codi VBA:

6976

Quan executeu aquest codi, obtindreu l' error d'execució 1004 .

⧭ Solució:

La solució és fàcil. Segur que ja ho has endevinat. Només heu d'assegurar-vos que l'ortografia de tots els arguments s'hagi fet correctament.

I l'error desapareixerà automàticament.

Llegiu més: Com s'utilitza Enganxa Comandament especial a Excel (5 maneres adequades)

Lectures similars

  • Excel VBA: Copia l'interval a un altre llibre de treball
  • Copieu i enganxeu valors a la següent fila buida amb Excel VBA (3 exemples)
  • Aplica VBA PasteSpecial i mantén el format d'origen a Excel
  • Com copiar el mateix valor en diverses cel·les a Excel (4 mètodes)
  • Excel VBA per copiar files a un altre full de treball basat en criteris

Raó 3: obrir un nouLlibre de treball després de copiar que cancel·la el mode de copiar/enganxar

Aquest és un altre motiu important de l'error. És a dir, fer alguna cosa que cancel·li el mode de copiar/enganxar abans d'enganxar.

Mireu el codi següent per entendre's clarament.

⧭ Codi VBA:

5063

Aquí hem copiat l'interval B3:B5 del Full1 d'un llibre de treball anomenat Workbook1 .

A continuació, hem creat un nou quadern de treball anomenat Workbook2 a la mateixa carpeta i hem intentat enganxar l'interval copiat a l'interval B3:B5 de Full1 d'aquest llibre de treball.

Però quan executem el codi, mostrarà un error PasteSpecial Method of Range Class Failed , perquè en el moment en què creem el nou llibre de treball, el mode copiar/enganxar es cancel·larà.

⧭ Solució:

Per resoldre aquest problema, primer, escriviu baixa les línies de codi per crear el nou llibre de treball anomenat Workbook2 .

A continuació, inseriu les línies per activar Workbook1 i copieu-ne l'interval desitjat.

I, finalment, activeu Workbook2 i enganxeu-hi l'interval copiat.

7658

Executeu aquest codi. Copiarà l'interval B3:B5 del Full1 de Workbook1.

I l'enganxarà al Full1 del llibre de treball acabat de crear anomenat Llibret de treball2 .

⧭ Precaució:

Òbviament, no oblideu mantenir Workbook1 obert mentre executeu elcodi.

Llegir més: Com desactivar la funció de copiar i enganxar a Excel sense macros (amb 2 criteris)

Raó 4: Convertir Application.CutCopyMode a False que cancel·la el mode Copiar/Enganxar

Finalment, pot haver-hi un altre motiu pel qual es produeixi l'error. És possible que desactivem Application.CutCopyMode per error abans d'accedir al mètode PasteSpecial .

Tot i que no és una pràctica molt habitual, de vegades ho fem quan ho volem treballeu amb un nombre llarg de línies.

Consulteu el codi següent per entendre-ho clarament. Aquí hem copiat l'interval B3:B5 , però hem cancel·lat el CutCopyMode abans d'enganxar-lo.

⧭ Codi VBA:

8911

Quan executeu el codi, mostrarà l'error PasteSpecial Method of Range Class Failed .

⧭ Solució:

Suposo que a hores d'ara tots ja heu endevinat la solució. És bastant senzill en realitat. Només cal que elimineu la línia del codi que desactiva el mode CutCopy .

Per tant, el codi VBA correcte serà:

1253

Copiarà l'interval B3:B5 i l'enganxarà a D3:D5 sense cap problema.

Llegir més: VBA Paste Special per copiar valors i formats a Excel (9 exemples)

Coses per recordar

Aquí només he mostrat els problemes que podeu trobar mentre treballeu amb el mètode PasteSpecial a VBA. SiSi voleu conèixer el mètode PasteSpecial en detall, visiteu aquest enllaç .

Conclusió

En resum, aquests són els motius que poden provocar l' error en temps d'execució 1004: PasteSpecial Method od Range Class Failed al vostre codi. Espero que hàgiu entès tots els punts clarament i que us ajudin molt en el futur. Coneixes altres motius? I tens algun problema? No dubteu a preguntar-nos. I no us oblideu de visitar el nostre lloc ExcelWIKI per obtenir més publicacions i actualitzacions.

Hugh West és un entrenador i analista d'Excel molt experimentat amb més de 10 anys d'experiència en el sector. És llicenciat en Comptabilitat i Finances i Màster en Administració i Direcció d'Empreses. Hugh té una passió per l'ensenyament i ha desenvolupat un enfocament pedagògic únic que és fàcil de seguir i entendre. El seu coneixement expert d'Excel ha ajudat a milers d'estudiants i professionals de tot el món a millorar les seves habilitats i a destacar en les seves carreres. A través del seu bloc, Hugh comparteix els seus coneixements amb el món, oferint tutorials d'Excel gratuïts i formació en línia per ajudar les persones i les empreses a assolir tot el seu potencial.