Je commencerai donc par dire que j'ai commencé à apprendre Javascript il y a 4 jours. Maintenant que c'est à l'écart, mon intention avec ce script. Je souhaite automatiser le processus de déplacement des réponses aux formulaires Google, qui sont collectées dans une feuille de calcul, vers une nouvelle feuille dans le même classeur en tant qu'archive. Je souhaite que cela se produise chaque semaine, et que chaque feuille d'archivage créée ne comporte que des réponses d'une semaine. Cela devrait être entre 12h01 et 1h00 le dimanche, cela n'a pas vraiment d'importance à cette heure-là. Je voudrais également supprimer toutes ces réponses de la feuille de collection primaire (Current_Responses), mais si je dois les supprimer manuellement, c'est bien (et probablement bon, parce que je peux vérifier que le script a bien fonctionné). Je pense que j'ai un bon début de départ, mais comme je suis nouveau dans tout ça, j'apprécierais vraiment qu'un scripteur plus expérimenté puisse regarder par-dessus mon code et me dire si ça marchera comme ça. l'intention de, et si non, où les erreurs sont et comment les corriger. Je suis heureux de faire des erreurs, et ensuite apprendre d'eux afin que tout conseil sera profondément honoré.Google Script pour copier et archiver les réponses de formulaire dans la nouvelle feuille sur une base hebdomadaire
J'ai effectué des recherches sur plusieurs sujets et scripts sur trois sites Web afin d'aider à mettre cela ensemble. Merci d'avance pour toute aide et conseil!
// function to copy from Current_Responses to new sheet 'Archived_Responses
//(UTC Date)' placed after Current_Responses
function CreateCopySheetWeekly() {
//source info
var ss = SpreadsheetApp.getActiveSpreadsheet();
var templateSheet = ss.getSheetByName('Current_Responses');
var range = ss.getRange ('A:I'); //replace column length as needed
var data = range.getValues();
//creates target sheet to copy responses to
var ts = 'Archived_Responses '+formatDate();
ss.insertSheet(sheetName, ss.getSheets().length, {template: templateSheet});
ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data);
}
//end of primary function
//function to determine and format UTC Date for CreateCopySheetWeekly function
function formatDate() {
var month, day, d = new Date();
month = ('0'+(d.getUTCMonth()+1)).slice(-2);
day = ('0'+(d.getUTCDate()).slice(-2);
return d.getUTCFullYear()+'-'+month+'-'+day;
}
//end of date function
//check every hour to determine when to perform newSheetLast function. Intended for Sunday
//between 0001-0100
window.setInterval (onSunday(){
var today = new Date();
if (today.getDay() == 0 && today.getHours() === 12) {
CreateCopySheetWeekly();
}, 600000);
Allez-y doucement, car je suis nouveau à ce sujet, mais la critique constructive n'a jamais fait de mal à personne.