2017-10-03 4 views
1

J'aime copier plusieurs lignes de la même page google par un script, mais je n'ai pas réussi à le faire fonctionner.Comment copier plusieurs lignes (valeur uniquement) dans la même feuille par Google App Script pour Google Sheet

Mon script:

function Copymultiplerows() { 
    var ss = SpreadsheetApp.openByUrl("Spreadsheeturl"); 
    Logger.log(ss.getName()); 
    var mysheet = ss.getSheetByName('Sheet1'); 
    var source = ss.getRange ('72:350'); 
    var tss =SpreadsheetApp.openByUrl("Spreadsheeturl");        
    var ts = tss.getSheetByName('Sheet1'); 
    ts.getRange('73:351'); 
} 

Répondre

1

Vous devez également obtenir et définir les valeurs

ts.getRange("73:351").setValues(source.getValues()); 
+0

Merci Robin, j'ai ajouté le get et le code de valeur définie, mais quand je courais le script, il retourne un message d'erreur, il dit "largeur de plage incorrecte, était de 106, mais devrait être de 128 (ligne 8, fichier" Code ") Rejeter", que dois-je faire à ce sujet? Cheers – Brianlearningscript

+0

Une de vos feuilles a plus de colonnes que l'autre (peut-être vide). Vous pouvez utiliser 'source = ss.getDataRange(). GetValues ​​()' puis 'ts.getRange (1,1, source.length, source [0] .length) .setValues ​​(source)' –

+0

Bonjour Robin, merci pour votre suggestion, peut-être ma question (codes) est confuse. Je veux copier des lignes sur la même feuille, donc le total des colonnes doit être identique. Pour clarifier, je mets à jour la valeur des données sur la ligne 72 sur une base quotidienne et aime faire un script pour garder un enregistrement des données de la rangée 72 mises à jour en les copiant jusqu'à la rangée 73 et avec lui déplacer les données originales de la rangée 73 vers 350 jusqu'à 74 à 351 (un déclencheur de temps fera l'affaire), je pense qu'une alternative sera de copier la ligne 72 et insérer la ligne copiée en dessous (à la rangée 73), je serai reconnaissant si vous pouvez aider avec le code pour il. À votre santé. – Brianlearningscript