Erro de tempo de execución 1004: fallou o método PasteSpecial da clase de intervalo

  • Comparte Isto
Hugh West

Un dos problemas máis comúns que atopamos ao traballar con copiar e pegar en VBA é o erro de tempo de execución 1004 : Fallo do método de pegar da clase de intervalo . Neste artigo mostrarei cales son as posibles razóns detrás deste erro e como resolvelos, con exemplos e ilustracións axeitados.

Descargar o libro de prácticas

Descarga este caderno de prácticas para facer exercicio mentres lees este artigo.

PasteSpecial Method Failed.xlsm

PasteSpecial Method of Range Class Failed: Causes e Solucións

Sen máis demora, imos ao noso debate principal. É dicir, cales poden ser as posibles razóns detrás deste erro e como resolvelos.

Razón 1: acceder ao método PasteSpecial sen copiar nada

Este é o máis razón común detrás do erro. É dicir, tentando acceder ao método PasteSpecial sen copiar nada.

Para entendelo claramente, comprobe o seguinte código VBA .

⧭ Código VBA:

6911

Aquí usamos o método PasteSpecial de VBA sen copiando calquera cousa. Entón, Excel mostrará un erro de tempo de execución 1004 cando o execute.

⧭ Solución:

Para resolver este problema, primeiro, cómpre copiar un intervalo de celas e despois acceder ao método PasteSpecial .

8201

Cando executas este código, serápega as fórmulas do intervalo B3:B5 da folla de traballo activa no intervalo seleccionado.

Ler máis: Fallo do método PasteSpecial da clase da folla de traballo (motivos e solucións)

Razón 2: acceder ao método PasteSpecial con erros ortográficos

Este é outro motivo común detrás do erro. É dicir, para acceder ao método PasteSpecial con erros ortográficos en calquera argumento.

Mira o seguinte código VBA para que quede claro. Aquí cometemos un erro ortográfico no argumento xlPasteAll .

⧭ Código VBA:

5770

Cando executas este código, obterás o erro de execución 1004 .

⧭ Solución:

A solución é sinxela. Seguro que xa o adiviñaches. Só asegúrese de que a ortografía de todos os argumentos se realizou correctamente.

E o erro desaparecerá automaticamente.

Ler máis: Como usar Pegar Comando especial en Excel (5 formas axeitadas)

Lecturas similares

  • Excel VBA: copiar intervalo noutro libro de traballo
  • Copiar e pegar valores na seguinte fila baleira con Excel VBA (3 exemplos)
  • Aplicar VBA PasteSpecial e manter o formato de orixe en Excel
  • Como copiar o mesmo valor en varias celas en Excel (4 métodos)
  • Excel VBA para copiar filas noutra folla de traballo en función dos criterios

Razón 3: abrir un novoCaderno de traballo despois de copiar que cancela o modo de copiar/pegar

Esta é outra razón importante detrás do erro. É dicir, facer algo que cancele o modo copiar/pegar antes de pegar.

Mira o seguinte código para entendelo claramente.

⧭ Código VBA:

8331

Aquí copiamos o intervalo B3:B5 da Folla1 dun libro de traballo chamado Caderno de traballo1 .

Entón creamos un novo libro chamado Workbook2 no mesmo cartafol e tentamos pegar o intervalo copiado no intervalo B3:B5 de Folla1 dese libro de traballo.

Pero cando executemos o código, mostrará un Error do método PasteSpecial da clase de intervalo , porque no momento en que creamos o novo libro de traballo, o o modo copiar/pegar cancelarase.

⧭ Solución:

Para resolver este problema, primeiro escriba abaixo as liñas de código para crear o novo libro chamado Workbook2 .

A continuación, insira as liñas para activar Workbook1 e copie o intervalo desexado.

E, finalmente, activa Workbook2 e pega alí o intervalo copiado.

1703

Executar este código. Copiará o intervalo B3:B5 da Folla1 de Caderno de traballo1.

E pegao en Folla1 do libro de traballo recén creado chamado Caderno de traballo2 .

⧭ Precaución:

Obviamente, non esquezas manter Workbook1 aberto mentres executas

Ler máis: Como desactivar copiar e pegar en Excel sen macros (con 2 criterios)

Razón 4: Convertendo Application.CutCopyMode a False que cancela o modo Copiar/Pegar

Finalmente, pode haber outro motivo polo que se produza o erro. Podemos desactivar Application.CutCopyMode por erro antes de acceder ao método PasteSpecial .

Aínda que non é unha práctica moi común, ás veces facémolo cando queremos traballar cun número longo de liñas.

Consulte o seguinte código para entendelo claramente. Aquí copiamos o intervalo B3:B5 , pero cancelamos o CutCopyMode antes de pegalo.

⧭ Código VBA:

5773

Cando execute o código, mostrará o erro PasteSpecial Method of Range Class Failed .

⧭ Solución:

Supoño que agora xa todos adiviñades a solución. En realidade é bastante sinxelo. Só tes que eliminar a liña do código que desactiva o modo CutCopy .

Entón, o código VBA correcto será:

8887

Copiará o intervalo B3:B5 e pegarao sobre D3:D5 sen ningún problema.

Ler máis: VBA Pegar especial para copiar valores e formatos en Excel (9 exemplos)

Cousas para recordar

Aquí mostrei só os problemas que podes atopar ao traballar co método PasteSpecial en VBA. Sequere coñecer o método PasteSpecial en detalle, visite esta ligazón .

Conclusión

En resumo, estes son os motivos que poden causar o erro de tempo de execución 1004: PasteSpecial Method od Range Class Failed no teu código. Espero que entendeses todos os puntos con claridade e que che axuden moito no futuro. Coñeces algún outro motivo? E tes algún problema? Non dubides en preguntarnos. E non esquezas visitar o noso sitio ExcelWIKI para obter máis publicacións e actualizacións.

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.