La copie du script de données ne fonctionne plus
J'utilise un script dans ma feuille Google que j'ai trouvé ici:
copier des données d'une feuille à une autre dans le script de l'application Google et ajouter une ligne, un petit problème
var ss = SpreadsheetApp.getActiveSpreadsheet();
var copySheet = ss.getSheetByName("Copy");
var pasteSheet = ss.getSheetByName("Paste");
// get source range
var source = copySheet.getRange(2,2,12,2);
// get destination range
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
// copy values to destination range
source.copyTo(destination);
// clear source values
source.clearContent();
}
Quand je l'exécute maintenant, cela me donne une erreur:
Les coordonnées de la plage cible sont en dehors des dimensions de la feuille.
qui ne se présentait pas avant. Quelqu'un a-t-il une idée pourquoi il fait cela?
Réponses
Problème:
L'erreur est dans cette ligne:
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
pasteSheet.getLastRow()
renvoie un numéro de ligne qui se trouve tout en bas de votre feuille. Ensuite, vous considérez la 12
plage de lignes mais le pasteSheet
n'a pas de 12
lignes après la dernière ligne avec le contenu.
Solutions:
Ajoutez plus de lignes dans le pasteSheet
:

ou vous pouvez utiliser insertRowsAfter :
pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
Extrait de code:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var copySheet = ss.getSheetByName("Copy");
var pasteSheet = ss.getSheetByName("Paste");
// get source range
var source = copySheet.getRange(2,2,12,2);
// insert rows to make sure you have enough space
pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
// get destination range
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
// copy values to destination range
source.copyTo(destination);
// clear source values
source.clearContent();
}