2017-03-22 4 views
1

En raison de la limite de 65 536 lignes, je dois fusionner les valeurs de plusieurs feuilles de calcul dans un classeur d'avant 2007, en les copiant et en les collant Classeur 2007 qui n'a pas la limite.Erreur lors de la copie à partir d'Excel 2003: "Les informations ne peuvent pas être collées ..."

Ce code a travaillé pour la première feuille de calcul, mais la deuxième feuille de calcul:

destRow = 65537 
Set destRange = destSheet.Cells(destRow, 1) 
Set srcRange = srcSheet.Range("A1:R65536") 
srcRange.Copy destRange 

résultats dans l'erreur suivante:

"The information cannot be pasted because the Copy area and the paste area are not the same size."

Je reçois cette erreur si je fais l'opération manuellement ou avec VBA.

Répondre

1

Cela semble être un bogue dans Excel après 2007, lors de la copie d'une feuille Excel 2003 entière et du collage dans un emplacement Excel post-2007 qui n'est pas A1.

La solution:

Si je partage l'opération copier/coller en deux morceaux, cela fonctionne sans erreur:

destRow = 65537 
' Chunk 1 
Set destRange = destSheet.Cells(destRow, 1) 
Set srcRange = srcSheet.Range("A1:R65535") 
srcRange.Copy destRange 

' Chunk 2 
Set destRange = destSheet.Cells(destRow + 65535, 1) 
Set srcRange = srcSheet.Range("A65536:R65536") 
srcRange.Copy destRange